2011-12-19 67 views
0

我是新來的Pex和痣,我想利用參數化單元測試。我正在使用構造函數注入,我想爲我的參數創建一個痣存根。生成一個痣存根

public UserLogic(IUserRepository userRepository) 
{ 
    _userRepository = userRepository; 
} 

我讀過的文檔說莫爾將爲我的SIUserRepository存儲庫生成一個存根類型。但我不知道如何生成存根。任何人都可以提供一個例子。謝謝

+0

「SIUserRepository」類型是自動生成的,您只需爲包含「IUserRepository」類型的程序集添加一個痣程序集。你是否想問「如何創建存根類型的實例」? – Gebb 2011-12-19 16:13:44

回答

0

我假設你還沒有得到創建一個痣集合尚未。以下是一些基本步驟。

    在你的單元測試項目
  1. ,展開引用,並用鼠標右鍵單擊其中包含的類型IUserRepository裝配 - 選擇「添加痣大會」;
  2. 您現在將擁有鼴鼠存根&痣可用於該程序集,位於'.Moles'命名空間下,因此如果您有MyAsssembly.SomeNamespace.IUserRepository,您現在將具有可用的存根類型MyAssembly.SomeNameSpace.Moles .ReserRepository

現在,在某些UserLogic_Test方法中,可以像這樣引用存根;

[TestMethod] 
public void UserLogic_Test() 
{ 
    MyAssembly.SomeNameSpace.Moles.SUserRepository mock = new SUserRepository(); 
    UserLogic o = new UserLogic(mock); 
    Assert.AreEqual(1, o.SomeMethod()); 
} 
+0

當存根正確生成時遇到的一個問題是,與項目對應的.moles文件具有屬性。 我不確定是誰在那裏添加它的,但它確實讓我發現一些悲傷! 因此,如果您按照RJ的建議完成了工作,但仍未獲取存根,請務必檢查.moles文件! – kodjeff1 2014-05-07 15:28:00