1
我爲我的課了以下測試:起訂量基本問題
var mock = new Mock<IRandomNumberGenerator>();
mock.Setup(framework => framework.Generate(0, 50))
.Returns(7.0);
var rnac = new RandomNumberAverageCounter(mock.Object, 1, 100);
rnac.Run();
double result = rnac.GetAverage();
Assert.AreEqual(result, 7.0, 0.1);
這裏的問題是,我改變主意了什麼範圍的值Generate(int min, int max)
會使用。所以在Mock.Setup()
我定義範圍從0 to 50
而後來我實際上調用Generate()
方法的範圍從1 to 100
。
我跑了測試,失敗了。我知道這就是它應該發生的事情,但我仍然想知道在嘗試運行帶有錯誤參數的方法時是否沒有辦法啓動異常或拋出消息。另外,如果我想用不同的值(例如,從1到10)運行這個Generate()方法10次,我將不得不做10個模擬設置或其他東西,或者是否有一個特殊的方法?我能想到的最好的是這樣的(這是不壞,我只是詢問是否有其他更好的方法):
for (int i = 1; i < 10; ++i) {
mock.Setup(framework => framework.Generate(1, 100))
.Returns((double)i);
}