所以假設我嘲笑以下類:我可以使用Moq來驗證在複雜參數中使用特定值調用了模擬方法嗎?
public class ClassAParams
{
public int RequestedId { get; set; }
public string SomeValue { get; set; }
}
public class ClassA
{
public void ExecuteAction(ClassAParams executeParams) {}
}
現在說我有另一個類(姑且稱之爲ClassB
),我創建一個單元測試,我想確保當ClassB.Execute()
被稱爲,即ClassB
調用ClassA.ExecuteAction()
,但我想,以確保該參數調用該方法用了1
通常的ClassAParams.RequestedId
價值,我會做myMock.Verify(x => x.ExecuteAction(new ClassAParams { RequestedId = 1, SomeValue = "something" }));
在p處理這個問題問題是,我不想在此單元測試中檢查SomeValue
參數的值或任何其他ClassAParams
屬性。其他屬性將在其他單元測試中進行檢查,但必須驗證在每個單元測試中調用它的正確屬性(即使我不關心特定單元測試的範圍)會使單元維護變得煩人。
是否有任何方法可以使用Moq來驗證傳入模擬方法的結構只有某些屬性作爲特定值,而忽略其餘部分?
工作就像一個魅力,謝謝! – KallDrexx 2011-06-11 18:50:58