MOQ 和 AutoFixture 之间有什么区别?

发布于 2024-11-03 05:28:23 字数 58 浏览 4 评论 0原文

我有相当多的使用 MOQ 的经验,而我最近偶然发现了 AutoFixture。这些框架之间有什么区别?

I have a fair amount of experience using MOQ, while I've recently have stumbled into AutoFixture. What are the differences between these frameworks?

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

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

发布评论

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

评论(1

岁月苍老的讽刺 2024-11-10 05:28:23

常见问题解答解释了其中的差异。简而言之

AutoFixture 使用反射来创建公共类型的“行为良好”实例。如果需要填充构造函数的参数,它会自动生成其他类型的实例,并且还会为公共可写属性赋值。本质上,它只是使用请求类型的公共 API 来实例化和填充它。它不会做任何您作为开发人员无法手动完成的事情 - 它只是自动为您完成。

相比之下,大多数动态模拟库派生自已知类型以覆盖虚拟成员的行为。它们的目的是对被测系统 (SUT) 进行行为验证。

您可以将AutoFixture与Moq结合起来,将其变成一个自动模拟容器

The FAQ explains the difference. In short

AutoFixture uses Reflection to create 'well-behaved' instances of public types. It auto-generates instances of other types if necessary to fill in arguments for a constructor, and also assigns values to public writable properties. In essence, it simply uses the requested type's public API to instantiate and populate it. It doesn't do anything that you, as a developer, couldn't do manually - it just does it for you automatically.

In contrast, most Dynamic Mock libraries derive from known types to override the behavior of virtual members. Their purpose is to perform Behavior Verification of the System Under Test (SUT).

You can combine AutoFixture with Moq to turn it into an automocking container.

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