ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode


Модульное тестирование в Visual Studio


Модульное тестирование (или Unit-тестирование) предназначено для проверки правильности выполнения небольшого блока кода, решающего свою конкретную задачу. В статье рассказывается, как проводить в модульное тестирование в Visual Studio. Разработка ведётся на языке C#.

Создание проекта программы, модули которой будут тестироваться

Разработаем проект содержащий класс, который вычисляет площадь прямоугольника по длине двух его сторон.

Создадим в Visual Studio новый проект Visual C# -> Библиотека классов. Назовём его MathTaskClassLibrary.

Class1 переименуем в Geometry.

В классе реализуем метод, вычисляющий площадь прямоугольника. Для демонстрации остановимся на работе с целыми числами. Код программы приведён ниже.

Площадь прямоугольника, как известно, это произведение двух его сторон.

Создание проекта для модульного тестирования в Visual Studio

Чтобы выполнить unit-тестирование, необходимо в рамках того же самого решения создать ещё один проект соответствующего типа.

Правой кнопкой щёлкните по решению, выберите «Добавить» и затем «Создать проект…».

Создание проекта для модульного тестирования в Visual Studio

В открывшемся окне в группе Visual C# щёлкните «Тест», а затем выберите «Проект модульного теста». Введите имя проекта MathTaskClassLibraryTests и нажмите «ОК». Таким образом проект будет создан.

Модульное тестирование в Visual Studio

Перед Вами появится следующий код:

Директива [TestMethod] обозначает, что далее идёт метод, содержащий модульный (unit) тест. А [TestClass] в свою очередь говорит о том, что далее идёт класс, содержащий методы, в которых присутствуют unit-тесты.

В соответствии с принятыми соглашениями переименуем класс UnitTest1 в GeometryTests.

Затем в References проекта необходимо добавить ссылку на проект, код которого будем тестировать. Правой кнопкой щёлкаем на References, а затем выбираем «Добавить ссылку…».

В появившемся окне раскрываем группу «Решение», выбираем «Проекты» и ставим галочку напротив проекта MathTaskClassLibrary. Затем жмём «ОК».

Добавление ссылки на проект, который будет тестироваться

Также в коде необходимо подключить с помощью директивы using следующее пространство имён:

Займёмся написание теста. Проверим правильно ли вычисляет программа площадь прямоугольника со сторонами 3 и 5. Ожидаемый результат (правильное решение) в данном случае это число 15.

Переименуем метод TestMethod1() в RectangleArea_3and5_15returned(). Новое название метода поясняет, что будет проверяться (RectangleArea — площадь прямоугольника) для каких значений (3 и 5) и что ожидается в качестве правильного результата (15 returned).

Тестирующий метод обычно содержит три необходимых компонента:

  1. исходные данные: входные значения и ожидаемый результат;
  2. код, вычисляющий значение с помощью тестируемого метода;
  3. код, сравнивающий ожидаемый результат с полученным.

Соответственно тестирующий код будет таким:


Для сравнения ожидаемого результата с полученным используется метод AreEqual класса Assert. Данный класс всегда используется при написании unit тестов в Visual Studio.

Теперь, чтобы просмотреть все тесты, доступные для выполнения, необходимо открыть окно «Обозреватель тестов». Для этого в меню Visual Studio щёлкните на кнопку «ТЕСТ», выберите «Окна», а затем нажмите на пункт «Обозреватель тестов».

Окно Обозреватель тестов

В студии появится следующее окно:

Обозреватель тестов в Visual Studio

В данный момент список тестов пуст, поскольку решение ещё ни разу не было собрано. Выполним сборку нажатием клавиш Ctrl + Shift + B. После её завершения в «Обозревателе тестов» появится наш тест.

Unit тест

Синяя табличка с восклицательным знаком означает, что указанный тест никогда не выполнялся. Выполним его.

Для этого нажмём правой кнопкой мыши на его имени и выберем «Выполнить выбранные тесты».

Успешное выполнение модульного тестирования

Зелёный кружок с галочкой означает, что модульный тест успешно пройден: ожидаемый и полученный результаты равны.

Изменим код метода RectangleArea, вычисляющего площадь прямоугольника, чтобы сымитировать провал теста и посмотреть, как поведёт себя Visual Studio. Прибавим к возвращаемому значению 10.

Запустим unit-тест.

Имитация провала unit теста

Как Вы видите, красный круг с крестиком показывает провал модульного теста, а ниже указано, что при проверке ожидалось значение 15, а по факту оно равно 25.

Таким образом мы рассмотрели на практике модульное тестирование программы на языке C# в Visual Studio.

Вы можете скачать исходник решения по ссылке ниже или перейти в репозиторий данного проекта на GitHub:

Скачать исходник Репозиторий проекта на GitHub

 

 

Тестирование программного обеспечения — рекомендации

Приведём правило, которым следует руководствоваться при написании и проведении тестов для оценки правильного функционирования программ.

Удобнее всего будет рассмотреть пример основанный на математике.

Так или иначе тестируемый метод или функция (или вся программа в целом) имеет свою область допустимых входных значений. Для проверки правильности работы метода достаточно провести тестирование метода на входных значениях начала и конца области допустимых значений (ОДЗ), одного значения из внутренней части области, а также -1 от левой и +1 от правой границы области.

Например, если ОЗД функции F — это отрезок [0; 100], то для проверки корректности работы функции достаточно протестировать следующие варианты: F(0), F(50) [не обязательно 50, можно взять любое число из внутренней части ОДЗ], F(100), F(-1), F(101).

5/5 - (8 голосов)



Поделиться в соц. сетях:

Добавить комментарий

Ваш адрес email не будет опубликован.