Использование MVCContrib.TestHelpers с MsTest - есть ли способ получить более хорошие сообщения об ошибках? - PullRequest
2 голосов
/ 17 июля 2010

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

"~/".Route().ShouldMapTo<SpotController>(c => c.List());

Это великолепно! Ну, почти ...

Вместо того, чтобы, как мне хотелось бы, увидеть фактическую причину неудачи теста (я ничего не изменил в своем приложении MVC, так что он должен перенаправляться на HomeController.Index()), я получаю общее сообщение о создании исключения во время выполнения теста. Я нахожу это при отладке, потому что тестовый метод расширения в MVCContrib правильно (?) Выдает AssertionException.

Я предполагаю, что это исключение сбоя типа NUnit, а версия MsTest - AssertFailedException. Поскольку версия NUnit (очевидно) не наследуется от версии MsTest, исполнитель тестов в VS не ловит исключение и выдает мне приятное сообщение.

Есть ли способ заставить MsTest обрабатывать AssertionExceptions аналогично AssertFailedExceptions без необходимости перезаписывать половину MVCContrib.TestHelpers?

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

Обновление:
Эта проблема возникает и с большинством фальшивых фреймворков, так что теперь я хочу сделать это не только с AssertionException от NUnit, но и с VerificationException от Moq и, возможно, с другими ... Разве это просто невозможно?

...