如何在 NMock 中检查函数参数的属性

发布于 2024-08-08 23:17:36 字数 321 浏览 9 评论 0原文

假设我在(NMock)中模拟了以下接口。我如何检查 email.Subject = 'xyz' ?

目前我正在做类似的事情

IEmailService s = mocks.NewMock<IEmailService>();
Expect.Once.On(s).Method("Send").With(?????)

s.Send(new Email { Subject = 'rarr' });

mocks.Verify...();

interface EmailService { void SendEmail(Email email); }

Say if i had the following interface mocked in (NMock). How could i check that email.Subject = 'xyz' ?

Currently im doing something like

IEmailService s = mocks.NewMock<IEmailService>();
Expect.Once.On(s).Method("Send").With(?????)

s.Send(new Email { Subject = 'rarr' });

mocks.Verify...();

interface EmailService { void SendEmail(Email email); }

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

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

发布评论

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

评论(2

绝對不後悔。 2024-08-15 23:17:36

您可以使用 Has.Property 匹配器,如下所示:

IEmailService s = mocks.NewMock<IEmailService>();

Expect.Once.On(s).Method("Send").
    With(Has.Property("Subject", Is.EqualTo("rarr")));

s.Send(new Email { Subject = 'rarr' });
mocks.Verify...();

或者您可以编写一个自定义匹配器来验证参数的类型是否为 Email 并且其 Subject 属性具有正确的值。

You can use a Has.Property matcher like this:

IEmailService s = mocks.NewMock<IEmailService>();

Expect.Once.On(s).Method("Send").
    With(Has.Property("Subject", Is.EqualTo("rarr")));

s.Send(new Email { Subject = 'rarr' });
mocks.Verify...();

Or you could write a custom matcher to verify that the argument is of the type Email and that its Subject property has the correct value.

盗琴音 2024-08-15 23:17:36

您想检查 With 中的主题吗?这对我来说很奇怪,因为您正在编写单元测试用例,所以不需要以这种方式验证您自己的测试用例,对吧?

Do you want to check Subject inside With? That's weird to me as you are authoring unit test cases, so there is no need to validate your own test case in this way, right?

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