0

我是 Pex 和 Moles 的新手,我想利用参数化单元测试。我正在使用构造函数注入,我想为我的参数创建一个 moles 存根。

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

我读过的文档说 Moles 将为我的 SIUserRepository 存储库生成一个存根类型。但我不知道如何生成存根。谁能提供一个例子。谢谢

4

1 回答 1

0

我假设您还没有创建 Moles 程序集。以下是一些基本步骤;

  1. 在您的单元测试项目中,展开引用,然后右键单击包含 IUserRepository 类型的程序集 - 选择“添加 Moles 程序集”;
  2. 您现在将拥有可用于该程序集的 Moles 存根和痣,位于“.Moles”命名空间下,因此,如果您有 MyAsssembly.SomeNamespace.IUserRepository,那么您现在将拥有一个可用作 MyAssembly.SomeNameSpace.Moles.SUserRepository 的存根类型

现在,在一些 UserLogic_Test 方法中,您可以像这样引用存根;

[TestMethod]
public void UserLogic_Test()
{
    MyAssembly.SomeNameSpace.Moles.SUserRepository mock = new SUserRepository();
    UserLogic o = new UserLogic(mock);
    Assert.AreEqual(1, o.SomeMethod());
}
于 2012-04-17T22:11:33.633 回答