2009-10-14 49 views
4

我們正在嘗試使用PostSharp,更具體地說是OnMethodInvocationAspect來攔截類的方法。如何使用PostSharp和MOQ?

代碼運行良好,但是當用最小起訂量測試時,它似乎弄亂了我的模擬。

如果我刪除了方面,所有的測試都成功了。但是,如果我重新考慮這些方面,那麼對MOQ模擬的期望就不會達到。

this.sgtrMock.Setup(r => r.RetrieveCurrentTaxes()).Returns(new[] {tax1, tax2}); 
this.service.LoadServiceTaxes(); 
this.sgtrMock.Verify(r => r.RetrieveCurrentTaxes(), Times.Once()); 

什麼可以發生的任何想法:

這裏是從我們的單元測試中獲取的片段?

+1

你可以發表你的方面的代碼?有一個問題 - Moq對象不是攔截的對象,它們是代理。 – 2011-09-16 13:39:03

+0

嘿卡雷爾,對於長時間的響應延遲感到抱歉...我們在一段時間前遇到了這個問題,這只是一種技術上的不切實際。就像你說的那樣,MOQ創建代理避免了PostSharp的方面......我們最終重構了類,不包括方面並將它移到其他地方(我們不需要模擬期望)。 – 2011-10-29 21:45:32

+0

沒問題,我發表了我的評論作爲答案。請標記它以關閉此問題,謝謝。 – 2011-10-30 08:32:15

回答

1

有一個問題 - Moq對象不是攔截對象,它們是代理對象。