У меня есть модульные тесты, покрывающие мои связующие модели. Я создаю ModelBindingContext и заполняю ValueProviderDictionary своими тестовыми значениями. Я уверен, что, как только мой контроллер получит модель, все будет покрыто тестированием, и правильные вещи происходят. Я также уверен, что если BindingContext верен, моя модель будет привязана правильно. В чем я не уверен, так это в том, что мой View при публикации будет правильно заполнять BindingContext.
Я начал писать тесты WatiN, которые заполняют формы, отправляют их обратно и проверяют получившийся вид. Это нормально, но кажется очень ... косвенным. Например, страница с надписью «Ваш заказ был сохранен» после нажатия кнопки «Отправить» - мне нужно будет зайти в базу данных, чтобы проверить, правильно ли он был сохранен. У меня уже есть тесты, охватывающие это, когда модель, передаваемая моему контроллеру, равна x, y сохраняется в базе данных. Почему я повторяю этот код в тесте представления?
Что мне действительно нужно, так это заполнить представление, нажать «Отправить» и проверить либо (a) BindingContext, либо (b) модель, возвращенную из ModelBinder.
Есть какие-нибудь практики, как это делать?
Просто хотел добавить, что это будет в дополнение к тестам WatiN. У меня сейчас ~ 50 тестов WatiN (с большим количеством добавлений), и если бы я мог сделать выше без WatiN, это удалило бы только несколько тестов. Я буду продолжать использовать WatiN для того, для чего он хорош, но я чувствую, что сейчас злоупотребляю им для тех нескольких тестов.