Я использую Moq для модульного тестирования. Я хочу высмеять Guid
. Я нашел this post about mocking Guid.NewGuid()
, но я не знаю, будет ли это работать для меня, потому что я не знаю (и не могу найти), какой тип mockGuidService
есть.Mock a Guid с Moq
ответ
mockGuidService
тип: Mock<IGuidService>
. Он будет работать только в том случае, если вы используете интерфейс для вашего сервиса GUID, и вы можете ввести макет.
Если ваша архитектура слишком тесно связана с этим (без интерфейсов, без DI), то я бы рекомендовал ее улучшить, но если вы просто не можете ее изменить, то есть альтернатива. Вы можете извлечь генератор GUID как метод, пометить его как виртуальный и создать макет всего объекта, в котором вы измените поведение метода.
Ах, похоже, что это Java. Я использую C#. Спасибо за такой быстрый ответ, хотя! – jenjer
@jenjer Я немного смущен. Moq для C# (https://github.com/moq/moq4), и я писал об использовании его. – gdziadkiewicz
Вы можете использовать It.IsAny
* Почему вы хотите высмеивать 'Guid'? Как выглядит ваш код? – Julian