2009-09-18 43 views
6

我想用Moq來測試一個相當複雜的類,並且遇到問題。moq - 如果驗證方法沒有被調用,如果類吞下異常

我想驗證一個方法不會被調用,通常這很容易通過設置MockBehavior.Strict來完成,但是在這裏但是這個類有它自己的錯誤報告機制,所以它吞下了由Moq引發的異常。

.VerifyAll方法在測試結束時也通過很好,這真的很奇怪。這是Moq中的一個錯誤,是否有任何解決方法?

我也試着在這個方法上設置一個回調函數,並且在它內部做Assert.Fail,但是當它也被吞下時,測試框架(VS 2008內置測試)沒有得到它的通知。 ..

我使用Moq 2.6.1014.1。 (沒有時間升級到moq 3呢)

回答

11

好吧,這是令人尷尬的,我設法解決它。

在3.0,你可以這樣做:

mFMXmlC.Verify(f=>f.Put_Queue_Response(It.IsAny<Uri>(), 
             It.IsAny<string>(), 
             It.IsAny<string>(), 
             It.IsAny<object>()), Times.Never()); 

還是不明白爲什麼VerifyAll沒有工作,但是這似乎無論如何,以適應該法案。我會留下這個問題,以防別人正在尋找類似的東西。

+0

您可能想要在http://groups.google.com/group/moqdisc?pli=1上轉發此信息,以確定它是否是錯誤或預期行爲。 – TrueWill 2009-09-18 17:28:39

相關問題