Как вы тестируете приложение и код пользовательского интерфейса?


10

Я люблю писать модульные тесты и согласен с тем, что они являются отличным способом тестирования кода, предотвращения регрессий и т. Д. Однако я не могу их писать, поскольку подавляющее большинство кода, над которым я работаю изо дня в день, - это приложения. код, который отображает пользовательский интерфейс для пользователя. Есть ли хороший способ модульного тестирования кода приложения? Каковы лучшие практики здесь?

Я не ищу конкретного ответа, такого как структура и т. Д. Но, скорее, в целом, как вы подходите к этой проблеме?


Что такое «код приложения, отображающий пользовательский интерфейс»? Вы говорите о C в MVC?
Мартин Уикман

Я говорю о любом виде графического интерфейса - JavaScript / HTML, C ++ с MFC, WinForms, WPF и т. Д.
Джастин Этье

MVVM прост в модульном тестировании. См. Шаблон команды
Амир Резаи

@amir - Есть ли у вас какие-либо ссылки или дополнительная информация?
Джастин Этье

Ответы:


8

Для проверки реального пользовательского интерфейса Selenium работает хорошо.

Если вам нужны реальные модульные тесты, ваша стратегия состоит в том, чтобы вытолкнуть как можно большую часть логики из реального пользовательского интерфейса, обычно в объекте ViewModel. Затем вы можете написать модульные тесты для объекта ViewModel.

Другими словами, добавьте как можно меньше логики в реальный пользовательский интерфейс, чтобы модульное тестирование можно было проводить в другом месте.


Это хороший дизайн для SoC, в интерфейсе не должно быть доменной / бизнес-логики. Большая часть клиентской логики - интерактивность / валидация может идти в пользовательском интерфейсе с JavaScript, который является модульно тестируемым.
StuperUser

1

Я добился успеха в модульном тестировании моего приложения с помощью MSTest, тестировании Javascript с помощью QUnit и получении результатов этих тестов с помощью одного модульного теста MSTest, в котором используется WatiN (мне предложили Selenium , который также имеет возможность записывать тесты, но нашел WatiN лучше для автоматизации чисто).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.