【问题标题】:Generate A Moles Stub生成痣存根
【发布时间】:2011-12-19 11:04:37
【问题描述】:

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

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

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

【问题讨论】:

  • SIUserRepository 类型是自动生成的,您只需为包含IUserRepository 类型的程序集添加一个moles 程序集。你的意思是问“如何创建存根类型的实例”?

标签: moles pex pex-and-moles


【解决方案1】:

我假设您还没有创建 Moles 装配体。以下是一些基本步骤;

  1. 在您的单元测试项目中,展开引用,然后右键单击包含类型 IUserRepository 的程序集 - 选择“添加 Moles 程序集”;
  2. 现在,您将拥有可用于该程序集的 Moles 存根和痣,位于“.Moles”命名空间下,因此,如果您有 MyAssembly.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());
}

【讨论】:

  • 我遇到的一个未正确生成存根的问题是,与您的项目对应的 .moles 文件具有 属性。我不确定是谁把它加在那里的,但它确实让我很伤心!因此,如果您已按照 RJ 的建议进行操作,但仍未生成存根,请务必检查您的 .moles 文件!
猜你喜欢
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多