我有一個接口定義爲MOQ - 建立了一種基於
interface IMath
{
AddNumbersBetween(int lowerVal, int upperVal);
}
我可以設置一個基本起訂量爲上述如下參數值(多個參數):
Mock<IMath> mock = new Mock<IMath>();
mock.Setup(m => m.AddNumbersBetween(It.IsAny<int>(), It.IsAny<int>()));
呼叫它
mock.Object.AddNumbersBetween(1,4);
,然後驗證它被稱爲
mock.Verify(m => m.AddNumbersBetween(1,4), Times.AtleastOnce());
我無法弄清楚如何設置方法AddNumbersBetween這樣,如果upperVal是低於lowerVal拋出一個異常
mock.Object.AddNumbersBetween(4,1);//should throw an exception
本質上尋找類似:
mock.Setup(foo => foo.AddNumbersBetween("arg1 is higher than arg2")).Throws<ArgumentException>();
我會推薦簡單地用Callback實現異常拋出邏輯,因爲這可以讓你完全訪問這兩個參數。據我所知,參數匹配子句只能執行基於單個參數的邏輯。 – 2010-11-02 19:07:06