2
我在提供的框架中編寫客戶端組件,並且需要能夠單元測試我的組件。這些組件使用MVP(Model-View-Presenter)模式編寫,我想使用PEX爲我的演示者自動生成單元測試。如何讓PEX在具體對象是依賴關係時使用模擬對象,然後自動生成測試用例?
以下是主講人的代碼。
public partial class CompetitorPresenter : PresenterBase
{
private readonly ICompetitorView _view;
public IGlobalDataAccess GlobalDataAccess;
public IGlobalUI Globals;
public SystemClient Client;
public bool DeleteRecord()
{
if (_view.CompetitorName != "Daniel")
return false;
if (Client.SystemName != "Ruby")
return false;
return true;
}
}
我遇到的問題是,對象SystemClient
是由框架提供的,我不能用一個工廠類創建的SystemClient
一個實例。因此,當我運行PEX自動生成單元測試時,我必須告訴PEX忽略SystemClient
,結果是DeleteRecord
方法沒有完全覆蓋,因爲Client.SystemName != "Ruby"
未被測試。
鑑於我在模擬對象MSystemClient
(使用摩爾創建的),我想知道如果在某處的配置,我可以告訴PEX使用MSystemClient
,讓PEX自動生成測試用例完全覆蓋此方法。
感謝斯特凡。我之後的解決方案是讓PEX自動生成測試用例,而無需手動編寫摩爾代碼。我希望有一個PEX配置選項。 – 2012-01-06 10:01:33