Я только начинаю использовать 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 и, возможно, с другими ... Разве это просто невозможно?