Подходит ли nunit для тестирования UI?

Немного запуталась в терминах. Говорят что юнит-тестирование это то, что проверяет конкретные методы в программе и есть UI тестирование интерфейса. Мне необходимо писать последнее. Это делается в проекте nunit (xunit, mstest)? Меня пугает то что проект называется юнит-тестирование, будто делаю что-то не так..


Ответы (2 шт):

Автор решения: Aziz Umarov
  • "Говорят что юнит-тестирование это то, что проверяет конкретные методы в программе и есть 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" и сделаем "клик", то у нас отработает кнопка. Тут в общем то можно тоже использовать фреймворки (для отслеживания результата нажатия кнопки), но юнит тестами это не является.

→ Ссылка