生成摩尔存根

发布于 2024-12-22 00:34:49 字数 263 浏览 1 评论 0原文

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

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

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

I'm new to Pex and Moles and i want to make use of parametrized unit tests. I am using constructor injection and I want to create a moles stub for my parameter.

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

The documentation Ive read says Moles will generate a stub type for my repository of SIUserRepository. But I cant figure out how to generate the stub. Would anyone be able to provide an example. Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

贪恋 2024-12-29 00:34:49

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

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

I'll assume you haven't gotten as far as creating a Moles assembly yet. Here's some basic steps to follow;

  1. in your unit test project, expand the references, and right-click the assembly which contains the type IUserRepository - select 'Add Moles Assembly';
  2. you'll now have Moles stubs & moles available for that assembly, under a '.Moles' namespace, so if you had MyAsssembly.SomeNamespace.IUserRepository, you'll now have a stub type available as MyAssembly.SomeNameSpace.Moles.SUserRepository

Now, in some UserLogic_Test method, you can refer to the stub like so;

[TestMethod]
public void UserLogic_Test()
{
    MyAssembly.SomeNameSpace.Moles.SUserRepository mock = new SUserRepository();
    UserLogic o = new UserLogic(mock);
    Assert.AreEqual(1, o.SomeMethod());
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文