Тестирование действий контроллера mpc asp.net - PullRequest
0 голосов
/ 16 мая 2010

Мне было просто интересно, как другие собираются протестировать действия контроллера в asp.net mvc? Большинство моих зависимостей внедряются в мои контроллеры, поэтому в методах действий не так много логики, но может быть некоторая условная логика, например, которую я считаю неизбежной.

В прошлом я писал тесты для этих методов действий, проверял зависимости и проверял результаты. Я обнаружил, что это очень хрупкий и настоящий PITA для поддержания. Наличие методов «Expect» и «Stub» везде очень легко ломается, но я не вижу другого способа тестирования действий контроллера.

Я действительно думаю, что было бы легче протестировать некоторые из них вручную! У кого-нибудь есть предложения? Возможно, я что-то здесь упускаю?

Спасибо

Имран

1 Ответ

1 голос
/ 16 мая 2010

Я не думаю, что написал один тест для контроллера, потому что вся моя логика в другом месте. Как вы говорите, контроллеры содержат минимальное количество кода, и любая логика в них настолько проста, что на самом деле не выдерживает целой стратегии тестирования.

Я предпочитаю тестировать мои модели, а также любой поддерживающий код, такой как DTL, уровни данных и т. Д.

Мне кажется, я видел, как некоторые люди копируют свои коптоллеры, передают ожидаемые модели и смотрят на полученный результат, но я не уверен, сколько это даст вам.

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

но все это интеграционное тестирование больше, чем функциональное. функционал я делаю в другом месте, как я уже говорил ранее.

с другой стороны, если стоит написать, то стоит проверить, а? Я думаю, вам нужно решить, что и где находятся биты и как вы хотите их проверять.

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