moq - как проверить, что метод не был вызван, если класс проглатывает исключения - PullRequest
8 голосов
/ 18 сентября 2009

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

Я пытаюсь проверить, что метод НЕ вызывается, и обычно это просто сделать, установив MockBehavior.Strict, но здесь, однако, класс имеет свой собственный механизм сообщения об ошибках, поэтому он проглатывает исключение, выдаваемое Moq.

.VerifyAll метод в конце теста также проходит нормально, что действительно странно. Это ошибка в Moq, есть ли обходные пути?

Я также пытался настроить обратный вызов для этого метода и выполнить Assert.Fail внутри него, но по мере того, как он также проглатывается, среда тестирования (встроенный тест VS 2008) не получает уведомление об этом .. .

Я использую Moq 2.6.1014.1. (еще не успел перейти на moq 3)

1 Ответ

12 голосов
/ 18 сентября 2009

Ну, это стыдно, мне удалось решить это.

В 3.0 вы можете сделать это:

mFMXmlC.Verify(f=>f.Put_Queue_Response(It.IsAny<Uri>(), 
                                       It.IsAny<string>(), 
                                       It.IsAny<string>(), 
                                       It.IsAny<object>()), Times.Never());

До сих пор не понимаю, почему VerifyAll не сработало, но, похоже, это все равно отвечает требованиям. Я оставлю вопрос на тот случай, если кто-то ищет что-то подобное.

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