2016-01-08 91 views
1

我的應用程序有3層(WebProject,UnitTestProject和CoreProject),使用模擬框架進行單元測試放置Moq dll的位置?Moq dll在項目中的位置?

+0

您需要將它放在您的UnitTestProject中... –

回答

0

我從你打算使用起訂量的問題標題假設,但理論仍然是其他框架相同

可以使用的NuGet安裝moqUnitTestProject

enter image description here

沒有其他層應該知道嘲笑或嘲笑,例如你的圖層會有一個IThing,模擬會滿足這個界面。

UnitTestProject

[Test] 
public void Test() 
{ 
    var mock = new Mock<IThing>(); 
    // set ups 

    var sut = new ThingHandler(); 
    sut.Act(mock.Object); 

    // Assert 
} 

核心項目

public ThingHandler 
{ 
    public result Act(IThing input) 
    { 
     //do stuff to an IThing 
    } 
} 

正如你所看到的核心項目,並不需要知道什麼是滿足IThing接口。

0

你應該把你所有的模擬DLL放在你自己的UnitTestProject中,而不是在其他地方。例如,如果您使用MS Moles和Pex框架進行嘲諷,一旦你右鍵單擊一個DLL並選擇創建痣它會自動創建並將您的參考文件夾中的嘲笑/ Moled dll。

此外,你的其他項目/層與這些嘲笑的DLL沒有業務,所以他們不應該知道相同的。