Подходит ли nunit для тестирования UI?
Немного запуталась в терминах. Говорят что юнит-тестирование это то, что проверяет конкретные методы в программе и есть UI тестирование интерфейса. Мне необходимо писать последнее. Это делается в проекте nunit (xunit, mstest)? Меня пугает то что проект называется юнит-тестирование, будто делаю что-то не так..
Ответы (2 шт):
- "Говорят что юнит-тестирование это то, что проверяет конкретные методы в программе и есть UI тестирование интерфейса." - так и есть UI также может и в основном имеет свою логику которую можно и нужно тестировать.
http://automaticchainsaw.blogspot.com/2007/09/winforms-testing-using-nunitforms.html http://nunitforms.sourceforge.net/docs.html
- "Меня пугает то что проект называется юнит-тестирование, будто делаю что-то не так.." - ну в первый раз порой страшно, но не беспокойтесь всё это тестирование и как правило проверяется и имплементится в отдельной сборке, так что если не портить данные (способность посторному запуску тестов), то ничего страшного произойти не может. Переименовать проект дело простое, если не уверены с наименованием посмотрите стандарты принятые в команде или проекте.
Фреймворки для юнит тестирования (nunit,xunit, mstest) помогают "подменять часть логики в проекте", фактически они эмулируют собой методы в коде, а потом говорят: "вызвал кто то этот метод или нет". Они завязаны именно на код приложения. А вот ответ на вопрос подразумевает оба варианта, смотря что подразумевается под UI тестами. UI тесты бывают двух типов. "Тесты логики" - грубо говоря, мы считаем что мы нажали на эту кнопку (кидаем событие любыми средствами, и смотрим что нажатие этой кнопки приводит к заданным изменениям). В этом случае вполне себе юнит тесты (с помощью того же nunit можно эмулировать нажатие на кнопку). Второй вариант UI тестов это тесты "графического интерфейса", когда "если мы сдвинем мышку в координаты "150х60" и сделаем "клик", то у нас отработает кнопка. Тут в общем то можно тоже использовать фреймворки (для отслеживания результата нажатия кнопки), но юнит тестами это не является.