我正在使用nj4x,它有一個具有隻讀字段的類,如下所示。如何爲單元測試模擬/覆蓋只讀字段
public class MarketInformation
{
public readonly double ASK;
public readonly double BID;
public readonly double DIGITS;
public readonly double EXPIRATION;
public readonly double FREEZELEVEL;
}
我正在爲編寫這些類的類和方法編寫單元測試。對於隔離/嘲笑我使用Nsubstitute和MicrosoftFakes(主要是墊片)。我想重寫這些字段,所以當它們在我的方法中被調用時,我會得到可預測的測試結果。 我爲這個類生成了填充,但它提供給我的是一個構造函數,現在允許我仍然初始化它。有沒有什麼辦法可以從這個課外設置這些領域?
我對mock/fakes等知識不是很瞭解,但不是爲你的領域設置硬編碼的可預測值*模擬類內部,即你不需要通過它在外面或從外面分配它。一個模擬應該是一個你正在嘲笑的抽象的實現,就像實現中的「真實」類一樣。 –
@ rory.ap實現模擬是一個獨立的想法,但是,我正在使用框架進行模擬和隔離。實現模擬需要抽象/接口類。但是這些在這裏不可用。 –
您需要創建一個可以模擬的接口。成員需要是「虛擬」的。 (NSubstitute只能與類的虛擬成員一起工作,因此類中的任何非虛擬代碼都將實際執行!)[參考](http://nsubstitute.github.io/help/creating-a-substitute/) – NtFreX