Тестирование настольных приложений - Кликер. Тестирование настольных приложений Кликер
ОГБПОУ «ТОМСКИЙ ТЕХНИКУМ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ» Отчет по Практической работе учебной дисциплиныМДК 05.03 ТЕСТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ Тема: «Тестирование настольных приложений - Кликер»Выполнил: Студент группы 692 Скрипов М. М.Проверил: преподаватель, Антипов Д. А. г. Томск – 2021 г Содержание Содержание 2 Основная часть 3 Приложение A. Исходный код 5 Листинг А.1 – MainWindow 5 Листинг А.2 – XAML 6 Листинг А.3 – Unit-тесты 8
Основная часть Ссылка на GIT : http://gogs.tomtit.tomsk.ru:3000/gr692_smm/ClickerTIS.git В Visual Studio 2019 мной было разработано приложение WPF (.NET Framework 4.7.2 ) «Кликер» на языке c# (Рис.1-Рис.2, Приложение A : Листинг A .1 – Листинг A .2 ). Рис.1 Вкладка «Cliсker» Рис.2 Вкладка «Shop»
Также мной были разработаны unit-тесты для данного приложения (Рис.3-Рис.7, Приложение A : Листинг A .3 ). Рис.3 Все тесты были успешно пройдены Рис.4 В функцию I_MD() было добавлено +1 к click (return point += click + 1;) Рис.5 В функцию Update() был добавлен лишний пробел Рис.6 В тесте значение переменной point было изменено на 0 Рис.7 В тесте значение переменной point было умножено на 2 (после прошлых тестов в методы класса UnsuccessfulWrite_offTest поступило всё ещё достаточно большое для апгрейда число, из-за чего функция Upgrade() возвращает не 0)
Приложение A . Исходный код Листинг А.1 – MainWindow using System.Windows; using System.Windows.Input; namespace Cliсker { public partial class MainWindow : Window { public long point = 0; public int click = 10; public int[] sol_b = new int[] { 100, 500, 1000, 1500 };//цены public int[] increased_b = new int[] { 10, 50, 100, 150 };//модификаторы public MainWindow() { InitializeComponent(); Update(); } public string Update() { helmets.Content = point.ToString(); heat.Content = click.ToString(); helmets2.Content = point.ToString(); heat2.Content = click.ToString(); B1.Content = "+" + increased_b[0].ToString() + " за\n" + sol_b[0].ToString() + " шлемов"; B2.Content = "+" + increased_b[1].ToString() + " за\n" + sol_b[1].ToString() + " шлемов"; B3.Content = "+" + increased_b[2].ToString() + " за\n" + sol_b[2].ToString() + " шлемов"; B4.Content = "+" + increased_b[3].ToString() + " за\n" + sol_b[3].ToString() + " шлемов"; return helmets.Content.ToString() + heat.Content.ToString() + helmets2.Content.ToString() + heat2.Content.ToString() + B1.Content + B2.Content + B3.Content + B4.Content; } private void Image_MouseDown(object sender, MouseButtonEventArgs e) { I_MD(ref point); Update(); } public long I_MD(ref long point) { return point += click; } private void Upgrade1(object sender, RoutedEventArgs e) { Upgrade(ref point, 0); Update(); } private void Upgrade2(object sender, RoutedEventArgs e) { Upgrade(ref point, 1); Update(); } private void Upgrade3(object sender, RoutedEventArgs e) { Upgrade(ref point, 2); Update(); } private void Upgrade4(object sender, RoutedEventArgs e) { Upgrade(ref point, 3); Update(); } public long Upgrade(ref long point, int i) { if (point >= sol_b[i]) { point -= sol_b[i]; click += increased_b[i]; return click; } return 0; } private void Exit(object sender, MouseButtonEventArgs e) { Application.Current.Shutdown(); } } }
Листинг А.2 – XAML xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Cliсker" mc:Ignorable="d" Title="MainWindow" Height="278.334" Width="453.333" WindowStyle="None" ResizeMode="NoResize" HorizontalAlignment="Center" VerticalAlignment="Center" WindowStartupLocation="CenterScreen">
Листинг А.3 – Unit-тесты using Microsoft.VisualStudio.TestTools.UnitTesting; using Cliсker; namespace CT { [TestClass] public class CliсkerTest { static MainWindow w = new MainWindow(); static long point = (w.sol_b[0] + w.sol_b[1] + w.sol_b[2] + w.sol_b[3]); [TestMethod] public void TestImage_MouseDown() // Проверка увеличения счётчика point { Assert.AreEqual(w.point + w.click, w.I_MD(ref w.point)); } [TestMethod] public void Update() // Проверка обновления надписей { string result = w.point.ToString() + w.click.ToString() + w.point.ToString() + w.click.ToString() + "+" + w.increased_b[0].ToString() + " за\n" + w.sol_b[0].ToString() + " шлемов" + "+" + w.increased_b[1].ToString() + " за\n" + w.sol_b[1].ToString() + " шлемов" + "+" + w.increased_b[2].ToString() + " за\n" + w.sol_b[2].ToString() + " шлемов" + "+" + w.increased_b[3].ToString() + " за\n" + w.sol_b[3].ToString() + " шлемов"; Assert.AreEqual(result, w.Update()); } [TestClass] public class SuccessfulWrite_offTest // Проверка успешного списания point (sol_b[1-4] <= point) { [TestMethod] public void TestUpgrade1() { Assert.AreEqual(w.click + w.increased_b[0], w.Upgrade(ref point, 0)); } [TestMethod] public void TestUpgrade2() { Assert.AreEqual(w.click + w.increased_b[1], w.Upgrade(ref point, 1)); } [TestMethod] public void TestUpgrade3() { Assert.AreEqual(w.click + w.increased_b[2], w.Upgrade(ref point, 2)); } [TestMethod] public void TestUpgrade4() { Assert.AreEqual(w.click + w.increased_b[3], w.Upgrade(ref point, 3)); } } [TestClass] public class UnsuccessfulWrite_offTest // Проверка неуспешного списания point (sol_b[1-4] > point) { [TestMethod] public void TestUpgrade1() { Assert.AreEqual(0, w.Upgrade(ref point, 0)); } [TestMethod] public void TestUpgrade2() { Assert.AreEqual(0, w.Upgrade(ref point, 1)); } [TestMethod] public void TestUpgrade3() { Assert.AreEqual(0, w.Upgrade(ref point, 2)); } [TestMethod] public void TestUpgrade4() { Assert.AreEqual(0, w.Upgrade(ref point, 3)); } } } }