WPF: написание тестов дыма с использованием ViewModels - PullRequest
0 голосов
/ 09 ноября 2009

Я планирую написать тесты дыма для нашего приложения WPF. Вопрос, с которым я сталкиваюсь, заключается в следующем: должны ли мы использовать автоматизацию пользовательского интерфейса (или какую-либо другую технологию, которая создает сценарий пользовательского интерфейса), или это достаточно хорошо, чтобы использовать ViewModels напрямую (после того, как все модели представления были созданы, чтобы в первую очередь упростить модульное тестирование) ).

Ответы [ 2 ]

2 голосов
/ 09 ноября 2009

Нет причин, по которым вы не можете написать unit тесты для ваших моделей представления, если они должным образом отделены от ваших представлений.

A smoke test - это тест, который фактически запускает ваше приложение и проверяет его работоспособность и (для приложения с пользовательским интерфейсом) автоматизация пользовательского интерфейса - путь к этому.

1 голос
/ 11 ноября 2009

Мы писали наши интеграционные тесты (если хотите, тесты дыма), используя ViewModels напрямую. Это сработало, но нам пришлось столкнуться с некоторыми интересными проблемами, связанными с многопоточностью: что происходит, например, если ваша ViewModel вызывает отображение окна сообщения - как ваш тест закрывает окно сообщения? Мы должны были убедиться, что наше приложение работает в одном потоке, а наши тесты - в другом.

Теперь мы перешли на UIAutomation, и подобные проблемы исчезли, потому что ваши тесты и приложение явно выполняются в двух отдельных процессах. Существует некоторая кривая обучения, но UIAutomation не так страшен, как кажется на первый взгляд: я написал учебник , который может помочь вам начать работу - перейдите по ссылке, и вы также найдите несколько вспомогательных методов, которые несколько укротят API автоматизации пользовательского интерфейса.

...