
лаб7 / lab7
.docxГУАП
КАФЕДРА № 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
Старший преподаватель |
|
|
|
Д.В. Куртяник |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ 7 Модульное тестирование |
по курсу: ОСНОВЫ ПРОГРАММИРОВАНИЯ |
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
4016 |
|
|
|
М.О.Жовтяк |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2021
Цель лабораторной работы: Приобретение практических навыков в области тестирования программного обеспечения, изучение возможностей модульного тестирования в MS Visual Studio
Ход работы:
Клонируем проект https://github.com/microsoft/calculator
Выбирается тест для проверки
Мной был выбран HistoryTests >>TestHistoryClearCommand, который проверяет, очищена ли история операций калькулятора, где условием выполнения является нажатие на кнопку Clear History с входными и выходными данными 0, 0.
Тест перед изменением в коде:
Нарочно изменяем код так, чтобы тест не был выполнен. Здесь изменилось условие на проверку количества операций, теперь история очищается, если операций отрицательное количество, что невозможно. В итоге количество операций будет больше нуля и тест не будет пройден.
Делаем повторный тест
Тест не выполнен с ошибкой Assert failed.
Теперь создаем свой unit-тест с проверкой
В моем случае выполняем проверку функции, выполняющей возведение степени в квадрат.
Код UnitTest.cpp:
#include "pch.h"
#include <CppUnitTest.h>
#include "stepen.h"
using namespace std;
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace Lab7
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
Assert::IsTrue(stepen(2) == 4);
}
TEST_METHOD(TestMethod2) {
Assert::IsTrue(stepen(3) == 9);
};
}
Код stepen.h:
int stepen(int n)
{
int a = n * n;
return a;
}
Проверка теста:
Вывод: в ходе работы я научился писать и запускать модульные тесты в Visual Studio с помощью встроенного средства для тестирования CppUnitTestFramework.
Список используемых ресурсов:
https://docs.microsoft.com/ru-ru/visualstudio/test/getting-started-with-unit-testing?view=vs-2022&tabs=dotnet%2Cmstest
https://docs.microsoft.com/ru-ru/visualstudio/test/unit-test-basics?view=vs-2022
https://pro.guap.ru/get-task/9436b1fb32e36f2745340cc6e3fc2023