- •Інструменти модульного тестування
- •Приклад модульного тесту
- •Розробка модульних тестів в ms Visual Studio
- •Visual Studio забезпечує засіб автоматизації створення модульних тестів. Ви можете клацнути правою
- •Виконання модульних тестів
- •Перегляд результатів тестів
- •Класи і методи модульних тестів
- •Visual Studio 2008 надає простір імен Microsoft.VisualStudio.TestTools.UnitTesting,
Visual Studio забезпечує засіб автоматизації створення модульних тестів. Ви можете клацнути правою
кнопкою миші в файлі коду для існуючого класу і вибрати в контекстному меню пункт Create Unit Tests. В
цьому випадку Visual Studio згенерує набір модульних тестів на базі коду вашого класу. Ви можете також
клацнути правою кнопкою миші по тестовому проекту і вибрати Add | Unit Test. Це дозволить вам вибрати
класи рішення, для яких ви хочете згенерувати модульні тести.
Генерується не лише код заглушки. Visual Studio вивчає методи і властивості вашого класу і пише
реальні тести. Звичайно, вам доведеться додати в них відповідні значення і перевірки, але генерується
цілком непоганий варіант для початку роботи.
Розглянемо приклад. Припустимо, що у вас є об'єкт CustomMath, який містить такі методи, як Sum,
Subtract, Multiply, Divide, і Square (код класу можна знайти в файлі CustomMath.cs, який знаходиться в
папці з даним файлом). Припустимо також, що ви хочете додати у ваш тестовий проект новий модульний тест.
Для виклику діалогового вікна Create Unit Tests необхідно клацнути правою кнопкою миші по назві класу в
редакторі коду. В результаті Visual Studio видасть вам діалогове вікно Create Unit Tests (рис. 1).
Рис. 1. Діалогове вікно Create Unit Tests
У цьому діалоговому вікні ви можете вибрати ті члени, для яких вам необхідно згенерувати тести та тип
тестового проекту. В даному прикладі були вибрані члени об'єкту CustomMath. Кнопка Settings відкриває
діалогове вікно, яке дозволяє вам вказати різні налаштування для генерування ваших модульних тестів. На
рис. 2 показаний приклад цього діалогового вікна.
Рис. 2. Діалогове вікно Test Generation Settings
Зверніть увагу, що ви можете використати макротекст [File], [Class] і [Method] для того, щоб вказати, що
Visual Studio повинна використати ключові елементи класу для того, щоб дати назви частинам тесту.
Visual Studio генерує тест для кожного методу і кожної властивості об'єкту. Для прикладу розглянемо
метод Sum. У прикладі показане те, що Visual Studio згенерувала в якості модульного тіста для цього
метода.
[TestMethod()]
public void SumTest()
{
CustomMath target = new CustomMath();
int x = 0; // TODO: Ініціалізувати відповідним значенням
int y = 0; // TODO: Ініціалізувати відповідним значенням
int expected = 0; // TODO: Ініціалізувати відповідним значенням
int actual;
actual = target.Sum(x, y);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Перевірити правильнисть даного тестового методу.");
}
Зверніть увагу, що цей тест створює новий екземпляр об'єкту CustomMath. Потім він намагається
обчислити суму Sum(x, y). І нарешті, він підтверджує, що обчислення суми було успішним. Все, що
залишається зробити розробникові, — це помістити в змінні x, y, expected допустимі значення (зверніть
увагу на TODO) і видалити виклик Assert.Inconclusive (щоб відмітити таким чином, що ви перевірили даний
тест).
[TestMethod()]
public void SumTest()
{
CustomMath target = new CustomMath();
int x = 11; // TODO: Ініціалізувати відповідним значенням
int y = 0; // TODO: Ініціалізувати відповідним значенням
int expected = 11; // TODO: Ініціалізувати відповідним значенням
int actual;
actual = target.Sum(x, y);
Assert.AreEqual(expected, actual);
}
