我已經得到了我使用的PartialMock這樣爲什麼我PartialMock方法忽略了我的意料
1 IContextManager contextManager = mocks.StrictMock<IContextManager>();
2 target = mocks.PartialMock<EnumerationServiceBase>(new object[] { contextManager });
3 Expect.Call(delegate { contextManager.RemoveContext(guid); });
4 mocks.ReplayAll();
5 actual = target.ReleaseOp(request);
target.ReleaseOp(請求)基類具有對contextManager.RemoveContext方法的調用我已經在第3行設置了期望,但我仍然收到以下錯誤
Rhino.Mocks.Exceptions.ExpectationViolationException:IContextManager.RemoveContext(「e04c757b-8b70-4294-b133-94fd6b52ba04」);預期#0,實際#1。
這是第一個測試中,這沒有奏效(其他45個很好),但這也是第一個使用A)部分模擬和B)模擬方法返回void 。有任何想法嗎?
已經嘗試過。甚至改變它返回的東西,所以它不是無效的。我認爲contextManager(傳遞給PartialMock方法)沒有關聯到代理實例。我要創建一個屬性並明確地設置它來查看是否能解決它。 – sonicblis 2011-04-15 20:42:42
明確設置它也不能解決問題。 = [ – sonicblis 2011-04-15 21:01:55
原來即使我傳遞了null並且表示忽略參數(使用Guid的重載被註冊爲預期的方法),也會調用一個接受字符串的重載。實質上你是對的朱麗葉。我應該更仔細地檢查兩個參數中的字符串,而不是Guid。答案就是你。 – sonicblis 2011-04-16 13:30:02