2016-08-05 6 views
0

Я использую Moq для модульного тестирования. Я хочу высмеять Guid. Я нашел this post about mocking Guid.NewGuid(), но я не знаю, будет ли это работать для меня, потому что я не знаю (и не могу найти), какой тип mockGuidService есть.Mock a Guid с Moq

+1

* Почему вы хотите высмеивать 'Guid'? Как выглядит ваш код? – Julian

ответ

1

mockGuidService тип: Mock<IGuidService>. Он будет работать только в том случае, если вы используете интерфейс для вашего сервиса GUID, и вы можете ввести макет.

Если ваша архитектура слишком тесно связана с этим (без интерфейсов, без DI), то я бы рекомендовал ее улучшить, но если вы просто не можете ее изменить, то есть альтернатива. Вы можете извлечь генератор GUID как метод, пометить его как виртуальный и создать макет всего объекта, в котором вы измените поведение метода.

+0

Ах, похоже, что это Java. Я использую C#. Спасибо за такой быстрый ответ, хотя! – jenjer

+0

@jenjer Я немного смущен. Moq для C# (https://github.com/moq/moq4), и я писал об использовании его. – gdziadkiewicz

+0

Вы можете использовать It.IsAny (), чтобы издеваться над GUID. – Alok