Для ясности, инструменты, которые тестируют через пользовательский интерфейс, щелчки, записи и т. Д. c., Не являются единичными тестами. Это просто способ автоматизации тестирования приложений, который подойдет хорошему тестеру, за исключением творческого понимания человеческого тестера.
Хорошо спроектированный GUI, включая один, написанный для форм Windows, может извлечь выгоду из модульных тестов, но обычно для этого не нужно столько, сколько требует серверная часть. Например, вам не нужно проверять, что TextBox
отображает текст, который вы в него вставили - код для TextBox
не ваш код. Вы можете захотите проверить, что правильный текст действительно передан TextBox
и что расположение и размер TextBox
установлены правильно - по крайней мере, это видно на экране.
Это ваше суждение о том, сколько из этого типа тестирования необходимо. Если вы хотите написать такие тесты, NUnit - хороший инструмент для этого, как и большинство тестовых сред на одном уровне. Если вы новичок в NUnit и / или программируете модульное тестирование c, вы должны знать, что большинство людей считают этот тип GUI тестированием несколько более продвинутым, чем бэкэнд-тестирование. (Раньше я давал уроки по Windows GUI тестированию и нацеливал их на людей, которые уже знали, что NUnit уже несколько лет проводит с ним модульное тестирование.)
Мой совет - найти места в GUI, где вы видели или предвидели ошибки. Например, у вас может быть флажок, который контролирует, активны ли другие элементы управления или нет. Этот вид UI logi c - именно то, для чего ценны юнит-тесты GUI.
Общие рекомендации ...
-
Не пытайтесь выполнить внешний вид модульного теста - просто посмотрите на него!
Используйте mocks для замены любой серверной базы данных или кода на стороне сервера.
Используйте архитектуру, которая позволяет отдельно тестировать GUI logi c - мне нравится MVP для Windows форм и (очевидно) MVVM для WPF.
Начало теста и обработка событий отдельно , а не как одно. Это особенно важно для событий, происходящих из элементов управления SWF.
Если вы сделаете это и столкнетесь с конкретными c проблемами, просто задайте нам другой вопрос.