2011-10-14 52 views

回答

24

「何時」可讓您選擇對同一個模擬對象進行不同設置,具體取決於您需要決定的任何設置。假設您想測試您編寫的格式提供程序。如果程序(= test)在早上運行,某個函數調用應該返回null;在下午有一定的價值。然後你可以使用「When」來寫這些條件設置。

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

使用此方法,您可以在Mock<T>.When(...)中設置的條件評估爲true時配置模擬對象的行爲。這使你的模擬對象根據給定的條件作出不同的反應。

相關問題