
- •Інструменти модульного тестування
- •Приклад модульного тесту
- •Розробка модульних тестів в ms Visual Studio
- •Visual Studio забезпечує засіб автоматизації створення модульних тестів. Ви можете клацнути правою
- •Виконання модульних тестів
- •Перегляд результатів тестів
- •Класи і методи модульних тестів
- •Visual Studio 2008 надає простір імен Microsoft.VisualStudio.TestTools.UnitTesting,
Виконання модульних тестів
Ви можете запускати свої тести з панелі інструментів Test Tools або з меню Test. У вас є два варіанти:
виконувати їх у відлагоджувачі або без нього (пункт меню Test|Debug або Test|Run). Перший дозволяє вам
при невдачі тесту вийти у відлагоджувач. Ця можливість корисна у тому випадку, якщо ви шукаєте
неполадки в коді за допомогою тестів. Другий варіант вірогідніший. Ви просто хочете виконати свій набір
модульних тестів і отримати їх результати.
Описані вище команди дозволяють запустити усі тести цього рішення або доступні в даному контексті.
Для того, щоб запустити групу, список або підмножину усіх тестів, вам доведеться використати редактор
Test List Editor. Наприклад, якщо ви просто хочете виконати модульні тести CustomMath, тоді можете
відкрити редактор Test List Editor з меню Test (рис. 3).
У вікні редактора Test List Editor виберіть Class Name в списку, що розкривається Group By. Це
дозволить вам бачити тільки тести CustomMathTest. Ви можете виділити усі ці тести і виставити прапорці
для їх виконання (рис. 3).
Ви можете також ввести фільтр для того, щоб знайти ті тести, які хочете виконати. Для цього введіть свій
критерій пошуку в правому текстовому полі панелі інструментів Test List Editor. Потім натисніть зелену
стрілку для застосування фільтру. Якщо ваш тестовий список виконуватиметься часто, то ви можете
створити новий список збереження тих тестів, які ви хочете виконувати групою. Ви можете зробити це при
допомозі кліку правою кнопкою миші по вузлу Lists of Tests у вікні Test List Editor і подальшого вибору
пункту New Test List. Тут ви можете додати в список нові тести і зберегти цей список для подальшого
використання.
Коли у вас є список тестів, які ви хочете виконати, то ви можете зробити це панелі інструментів Test List
Editor. Для цього необхідно вибрати Run Checked Tests.
Рис. 3. Вибір тестів в редакторі Test List Editor
Перегляд результатів тестів
Вікно Test Results (Test|Windows|Test Results) дає огляд пройдених вдало і невдало тестів. На рис. 4
показано це вікно у дії. Зверніть увагу, що якщо один або більше за тести завершилися невдало, то і
тестовий прогін вважається невдалим. В даному випадку пройшли 5 з 6 тестів. Проте загальний тест був
невдалим(із-за збою в одному тісті).
Рис. 4. Результати тестів
Ви можете проглянути результати у вікні Test Results. Якщо ви двічі клацнете по тесту, то отримаєте
статистику цього тіста. У верхній частині рис. 4 показана інформація по помилці. Там міститься
повідомлення про помилку і трасування стека.
Класи і методи модульних тестів
Visual Studio 2008 надає простір імен Microsoft.VisualStudio.TestTools.UnitTesting,
який включає класи атрибутів для опису тестів. Атрибутами мітять класи і методи для їх виконання
інфраструктурою модульного тестування. У таблиці. 1 представлений список часто використовуваних класів
атрибутів для модульного тестування.
Простір імен UnitTesting містить також статичний тип Assert. Цей об'єкт містить методи для
визначення, чи відповідають результати тесту результатам, що очікувалися. У таблиці 1 перераховані деякі
основні методи визначення.
Таблиця 1. Класи тестових атрибутів Visual Studio
Таблиця 2. Методи перевірки
Багато з перерахованих в таблиці 2 методів містять по декілька перевантажень. Ці перевантаження
дозволяють вам порівнювати різні типи даних, узагальнені колекції і т. д. Крім того, існують такі
перевантаження, які дозволяють вам просто зробити перевірку, а також і такі, які роблять перевірку
дозволяють вам вказати повідомлення, яке буде виведено у разі невдалої перевірки.
Простір імен UnitTesting містить також додаткові класи перевірок. Клас CollectionAssert
використовується для перевірки вмісту колекцій. Наприклад, ви можете викликати метод Contains для
перевірки, чи містить ця колекція певний елемент. Клас StringAssert містить методи для перевірки
збігів рядків і частин рядків. Наприклад, ви можете використати метод StartsWith для перевірки, чи не
починається рядок з певного набору символів.
Тест |
Опис |
TestClass |
Використовується для вказівки, що клас є тестовим класом, що містить модульні тести |
TestMethod |
Використовується для позначки методу як модульного тіста Тестові методи не повинні мати повертаного значення(void) і не повинні чекати параметрів(оскільки параметри в метод передавати нікому) |
Testlnitialize |
Використовується для вказівки, що цей метод повинен виконуватися перед кожним тестом. Ця можливість корисна тоді, коли вам необхідно встановити початковий стан системи перед кожним тестом |
TestCleanup |
Використовується для вказівки, що цей метод повинен виконуватися після кожного тіста. Ця можливість корисна тоді, коли вам необхідно скидати стан системи після кожного тіста |
ClassInitialize |
Використовується для вказівки, що метод має бути виконаний перед запуском будь-яких тестів класу |
ClassCleanup |
Використовується для вказівки, що метод має бути запущений після виконання усіх тестів класу |
ExpectedException |
Використовується для вказівки, що в цьому тісті передбачається виникнення виключення. Ця можливість корисна для тестування очікуваних помилкових умов |
Метод |
Опис |
AreSame/AreNotSame |
З'ясовує, чи є два об'єкти одним і тим же об'єктом |
AreEqual/AreNotEqual |
З'ясовує, чи є два значення рівними |
IsNull/IsNotNull |
З'ясовує, чи містить об'єкт посилання типу null |
IsInstanceOfType/IsNotlnstanceOfType |
З'ясовує, чи має об'єкт вказаний тип |
IsTrue/IsFalse |
З'ясовує, чи є умова істинною |