将自定义对象与 Pex 测试框架结合使用

发布于 2024-12-01 15:06:47 字数 266 浏览 1 评论 0原文

我正在尝试使用 Pex 和 Moles 测试框架来测试我的项目。

我对使用 Pex 进行参数化测试有一点想法。

void SampleMethod(Employee emp)
{
/// Some business logic
}
void SampleMethod(List<Employee> emps)
{
/// Some business logic
}

如何对这些方法进行测试?

谢谢 阿什瓦尼

I am trying to use Pex and Moles testing framework for testing my project.

I have small idea of using Pex for parametrized testing.

void SampleMethod(Employee emp)
{
/// Some business logic
}
void SampleMethod(List<Employee> emps)
{
/// Some business logic
}

How to do testing for these kind of methods?

Thanks
Ashwani

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

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

发布评论

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

评论(1

一笑百媚生 2024-12-08 15:06:47

Pex 将为您生成测试,Moles 将提供存根。

例如,

[TestMethod]
[PexGeneratedBy(typeof(ProgramTest))]
public void someTest()
{
    SCustomer sCustomer = new SCustomer();
    int i;
    i = this.DoSomething((Customer)sCustomer);
    Assert.AreEqual<int>(0, i);
}

这里的“S”表示“Stub”,是您的依赖类的模拟对象,在您的例子中是“Employee”或“SEmployee”。 Moles 基于接口(在你的例子中为 IEmployee)进行存根。

然后,您可以使用匿名委托来消除行为:

customer.GetFirstName = () => "Charlie"; 

这有帮助吗?

Pex will generate a test for you and Moles will provide the stubs.

e.g.

[TestMethod]
[PexGeneratedBy(typeof(ProgramTest))]
public void someTest()
{
    SCustomer sCustomer = new SCustomer();
    int i;
    i = this.DoSomething((Customer)sCustomer);
    Assert.AreEqual<int>(0, i);
}

The "S" here denotes "Stub" and is a mock object of your dependent class, in your case "Employee" or "SEmployee". Moles does the stubbing based on the interface (IEmployee in your case).

You can then stub out behaviour using anonymous delegates:

customer.GetFirstName = () => "Charlie"; 

Does that help?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文