我有一個從抽象基類繼承的類。我試圖驗證在基類中指定的受保護的方法被調用兩次,我想驗證傳遞的參數是特定的值(每次調用不同)。驗證受保護的方法是用Moq 3.1調用的
我希望我能夠使用Protected
與Expect
或Verify
,但似乎我已經錯過了用這些方法可以完成的工作。
是我試圖與moq?
UPDATE: 的什麼,我試圖做一個例子:
class MyBase
{
protected void SomeMethodThatsAPainForUnitTesting(string var1, string var2)
{
//Stuf with file systems etc that's very hard to unit test
}
}
class ClassIWantToTest : MyBase
{
public void IWantToTestThisMethod()
{
var var1 = //some logic to build var 1
var var2 = //some logic to build var 2
SomeMethodThatsAPainForUnitTesting(var1, var);
}
}
基本上我要測試的變量VAR1和VAR2正確地創建並傳遞到SomeMethodThatsAPainForUnitTesting
的方式,所以基本上我想嘲笑受保護的方法,驗證它至少被調用過一次,並且參數全部正確傳遞。如果這是在一個接口上調用一個方法,這將是微不足道的,但是我正在用一種受保護的方法來解決問題。
我不能輕易改變設計,因爲它是棕色領域的發展,而且我不是唯一調用該方法的類。
謝謝澄清。我刪除了我的答案,因爲它沒有解決問題。 – 2010-10-08 13:47:30