Можно ли отслеживать вызовы Moq? - PullRequest
0 голосов
/ 27 июля 2011

У меня есть ситуация, когда мне нужно смоделировать сторонний интерфейс и вызвать сторонний метод расширения, который взаимодействует с моим тестируемым компонентом.Трудно понять, что именно мне нужно проверить на макете интерфейса, и мне интересно, можно ли отследить все взаимодействия, записанные Moq, чтобы я мог видеть, что на самом деле происходит.Исходя из этого, я надеюсь, что смогу кодировать значимые ожидания.Я не вижу никаких доказательств того, что это может быть сделано в документации по API, но кажется, что технология существует и, возможно, раскрыта где-то, чего я не нашел.

Спасибо!

1 Ответ

0 голосов
/ 27 июля 2011

Я не верю, что такая функциональность типа «воспроизведение» доступна в Moq.

Однако на ум приходит пара приемов для определения схемы вызовов:

  • Вы можете реализовать интерфейс с очень простым объектом, а затем запустить отладчик и установить точки останова для всех реализованных методов и свойств.Это должно позволить вам определить, что было названо и с какими значениями.

  • Вы можете создать макет и установить его, используя MockBehavior.Strict.Результатом этого будет то, что Mock будет генерировать исключение всякий раз, когда вызывается какое-либо из его свойств или методов (при условии, что ожидания не установлены).Вы можете поймать эти исключения одно за другим и определять ожидания по мере продвижения, и постепенно создавать картину того, что называется.

Я не допускаю ни одного сценария идеала.

В таком случае, вы подумали, это лучшее место, чтобы высмеивать функциональность?Не могли бы вы вместо этого ввести слой абстракции, который скрывает все сторонние функции, и вместо этого высмеивать его?

...