2013-04-24 105 views
4

我有以下函數簽名:MOQ設置功能拋出異常不起作用

T SomeMethod(Expression<Func<T, string>> param1, 
      , params Expression<Func<T, object>>[] items); 

我希望它每次拋出一個異常,它的執行。

我試着做以下設置:

myMock.Setup(x => x.SomeMethod(Moq.It.IsAny<Expression<Func<SomeClass, string>>>())) 
     .Throws(new Exception()); 

一切正常發現,但是當我到達這個方法簡化版,它拋出一個異常(雖然對象是我的模擬)。

我假設我的設置不正確。

我嘗試了很多變化一段時間,現在我有點沮喪。

我會把更多的代碼,但它是有限的。我想上傳的每件作品都應該改變,所以請原諒我的信息便宜。

希望它夠了,有人可以幫助我。

回答

7

看起來問題在params參數中。嘗試將其添加到設置

myMock.Setup(x => x.SomeMethod(
     Moq.It.IsAny<Expression<Func<SomeClass, string>>>()), 
     Moq.It.IsAny<Expression<Func<T, object>>[]>()) 
    ).Throws(new Exception()); 
+0

你太棒了!非常感謝。 你太快了,所以我可以接受你在五分鐘內回答...... 在此期間,也許你可以幫助我,我該如何強制第二次調用做另一個動作(返回,另一個異常)? – 2013-04-24 13:54:25

+0

你需要使用SetupSequence的 – alex 2013-04-24 13:57:44

+0

我來看看。再次,非常感謝! – 2013-04-24 14:00:38