如何使用带有最小起订量的 PostSharp?

发布于 2024-08-07 16:45:34 字数 432 浏览 5 评论 0原文

我们正在尝试使用 PostSharp,更具体地说是 OnMethodIn VocationAspect,来拦截类的方法。

代码运行良好,但是当用最小起订量测试它时,它似乎搞乱了我的模拟。

如果我删除这些方面,所有测试都会成功。但是,如果我重新打开这些方面,则无法满足最小起订量模拟的期望。

这是从我们的一个单元测试中摘取的片段:

this.sgtrMock.Setup(r => r.RetrieveCurrentTaxes()).Returns(new[] {tax1, tax2});
this.service.LoadServiceTaxes();
this.sgtrMock.Verify(r => r.RetrieveCurrentTaxes(), Times.Once());

对于可能发生的情况有什么想法吗?

We are trying to use PostSharp, more specifically the OnMethodInvocationAspect, to intercept the methods of a class.

The code runs fine, but when testing it with MOQ, it seems to be messing up with my mocks.

If I remove the aspects, all tests succeed. But, if I turn the aspects back on, the expectations on the MOQ mocks are not met.

Here is a snippet taken from one of our unit tests:

this.sgtrMock.Setup(r => r.RetrieveCurrentTaxes()).Returns(new[] {tax1, tax2});
this.service.LoadServiceTaxes();
this.sgtrMock.Verify(r => r.RetrieveCurrentTaxes(), Times.Once());

Any ideas about what can be happening?

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

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

发布评论

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

评论(1

夏花。依旧 2024-08-14 16:45:34

有一个问题 - Moq 对象不是拦截的对象,它们是代理。

There's a catch - Moq objects are not the intercepted objects, they're proxies.

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