Usage of Moq When(Func) method

前端 未结 2 1547
情话喂你
情话喂你 2021-02-11 22:10

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

When(Func condition);

What is the purpose/usage of the method? Plea

相关标签:
2条回答
  • 2021-02-11 22:40

    "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);
    
    0 讨论(0)
  • 2021-02-11 22:49

    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 讨论(0)
提交回复
热议问题