Moq dll在项目中的位置?

时间:2016-01-08 10:38:03

标签: .net unit-testing c#-4.0 mocking

我的应用程序有3层(WebProject,UnitTestProject和CoreProject),使用模拟框架进行单元测试,在哪里放置Moq dll?

2 个答案:

答案 0 :(得分:0)

我从问题标题中假设您打算使用Moq,但其他框架的理论基本相同

您可以使用Nuget将moq安装到UnitTestProject

enter image description here

其他任何一层都不应该知道嘲笑或嘲笑,例如你的图层会有一个IThing,Mock会满足那个界面。

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界面。

答案 1 :(得分:0)

您应该将所有模拟dll放在UnitTestProject本身而不是其他地方。例如,如果您使用MS Moles和Pex框架进行模拟;一旦你右键点击一个dll并选择创建鼹鼠,它就会自动创建并将模拟/ moled dll放在你的 Reference 文件夹中。

此外,您的其他项目/图层与那些被嘲笑的dll没有业务,所以他们不应该知道相同的。