Опубликован: 27.06.2009 | Уровень: для всех | Доступ: платный
Самостоятельная работа 6:

Инсталляция рабочего места тестера проекта, основные функции и возможности, тестирование фрагментов проекта

< Лекция 10 || Самостоятельная работа 6: 12345 || Самостоятельная работа 7 >

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

Модульное тестирование, по своей сути направлено, на выявление ошибок в отдельных методах или функциях проекта. Поэтому, для начала создадим простейшую математическую функцию для тестирования.

Перед началом создания модульного теста, создадим библиотеку классов C# с именем ExtendedMath. Переименуем Class1.cs в Functions.cs.

Листинг кода Function.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ExtendedMath
{
    public class Functions
    {
        public static int Fibonacci(int factor)
        {
            if (factor <2)
                return (factor);
            int x = Fibonacci(--factor);
            int y = Fibonacci(--factor);

            return x + y;
        }

    }
}

В данном коде реализован механизм построения последовательности Фибоначчи {1,1,2,3,5,8}. Результатом будет член последовательности Фибоначчи под номером actor.

Теперь у нас есть все необходимое для создания модульного теста.

В VSTS модульный тест может быть создан только в том случае, если он является частью тестового проекта ( test project ). Создадим новый проект ExtendedMathTesting (создание элемента test project описано в создании веб - теста). Поскольку мы будем тестировать ExtendedMath проект, необходимо добавить на него ссылку в проекте ExtendedMathTesting, используя Solution Explorer.

Добавление новой ссылки проекта

Рис. 18.19. Добавление новой ссылки проекта
Выбор объекта для ссылки

Рис. 18.20. Выбор объекта для ссылки

Добавим в созданный проект новый Class file с именем FunctionsTest.cs, который мы будем использовать для хранения модульных тестов для Functions.cs

Добавим в FunctionsTest.cs следующий код:

using ExtendedMath;
using Microsoft.VisualStudio.TestTools.UnitTesting;

Чтобы VSTS могла расценить класс, как контейнер модульных тестов необходимо добавить TestClass атрибут в класс.

namespace ExtendedMath
    {
        [TestClass]
        public class FunctionsTest
        {
        }
    }

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

[TestMethod]
    public void FibonacciTest()
    {
    }

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

Наш тест будет посылать на вход классу Functions определенное число, и сравнивать полученный ответ с ожидаемым результатом. При этом, тест выполнится успешно, если полученный ответ и ожидаемы результат будут совпадать, и не выполнится в противном случае.

Приведем полный листинг кода FunctionsTest.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ExtendedMath;
using Microsoft.VisualStudio.TestTools.UnitTesting;


namespace ExtendedMathTesting
{
    [TestClass]
    public class FunctionsTest
    {
        [TestMethod]
        public void FibonacciTest()
        {
            const int FACTOR = 8;
            const int EXPECTED = 21;

            int actual = ExtendedMath.Functions.Fibonacci(FACTOR);

            Assert.AreEqual(EXPECTED, actual);

        }

    }
}

Теперь, чтобы VSTS видела наш класс FunctionsTest как модульный тест, необходимо провести сборку (пересобрать) проекта ExtendedMathTesting либо всего решения полностью.

Сборка проекта

Рис. 18.21. Сборка проекта

После этого, открыв Test List Editor или Test View, мы можем запустить созданный тест. Откроем Test View (Test – Windows – Test View) и запустим модульный тест FibonacciTest.

Запуск выбранного теста

Рис. 18.22. Запуск выбранного теста

Результат выполнения теста отобразится в окне Test Results.

Результат тестирования

Рис. 18.23. Результат тестирования

Как видно, тест завершился успешно.

Задание на создание модульного теста:

В таблице 18.2 указаны варианты и значения переменных FACTOR и EXPECTED, которые необходимо проверить.

Таблица 18.2.
Номер варианта FACTOR EXPECTED
1 8 21
2 7 18
3 3 2
4 6 8
5 7 20
6 8 19
7 4 3

Если в ходе выполнения теста, появится сообщение об ошибке – сделайте вывод, почему так произошло и определите значение переменной EXPECTED для вашего варианта таким образом, чтобы тест выполнился успешно.

< Лекция 10 || Самостоятельная работа 6: 12345 || Самостоятельная работа 7 >
Александр Пятницын
Александр Пятницын
Россия
Александр Сидоренок
Александр Сидоренок
Украина, Киев