开发者

Usage of Moq When(Func<bool>) method

开发者 https://www.devze.com 2023-04-12 20:14 出处:网络
I can\'t find an example of the usage of the When method in Moq When(Func<bool> condition); What is the purpose/usage of the method? Please give a cod开发者_JAVA百科e sample demonstrating a s

I can't find an example of the usage of the When method in Moq

When(Func<bool> condition);

What is the purpose/usage of the method? Please give a cod开发者_JAVA百科e sample demonstrating a scenario where it would be useful.


"When" gives you the option to have different setups for the same mocked object, depending on whatever you have to decide. Let's say you want to test a format provider you have written. If the program (= test) runs in the morning a certain function call should return null; in the afternoon a certain value. Then you can use "When" to write those conditional setups.

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);


With this method you can configure your mocked object's behavior when the condition set in Mock<T>.When(...) evaluates to true. This enables your mocked object to react differently depending on the given condition.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号