Использование метода Moq When (Func <bool>) - PullRequest
23 голосов
/ 14 октября 2011

Я не могу найти пример использования метода When в Moq

When(Func<bool> condition);

Какова цель / использование метода?Пожалуйста, приведите пример кода, демонстрирующий сценарий, в котором он будет полезен.

Ответы [ 2 ]

27 голосов
/ 14 октября 2011

«Когда» дает вам возможность иметь разные настройки для одного и того же объекта, в зависимости от того, что вы решите. Допустим, вы хотите протестировать поставщика форматов, который вы написали. Если программа (= test) запускается утром, определенный вызов функции должен вернуть значение null; днем определенное значение. Затем вы можете использовать «Когда», чтобы написать эти условные установки.

var mockedService = new Mock<IFormatProvider>();

mockedService.When(() => DateTime.Now.Hour < 12).Setup(x => x.GetFormat(typeof(string))).Returns(null);
mockedService.When(() => DateTime.Now.Hour >= 12).Setup(x => x.GetFormat(typeof(string))).Returns(42);
2 голосов
/ 14 октября 2011

С помощью этого метода вы можете настроить поведение вашего смоделированного объекта, когда условие, установленное в Mock<T>.When(...), оценивается как истинное.Это позволяет вашему смоделированному объекту реагировать по-разному в зависимости от заданного условия.

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