我应该对一个类进行单元测试以获取 MEF 属性吗?
我想重构一个 DLL 以使其也可 MEFable。我是否应该对类是否用 [Export] 或 [Import] 以及其他 MEF 属性进行修饰进行单元测试?
I want to refactor a DLL to make it MEFable too. Should I unit test whether a class is decorated with [Export] or [Import] and other MEF attributes?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的测试应该更多地关注目标而不是机制。创建测试来验证诸如“如果我将类型 X、Y 和 Z 一起放入容器中,那么我可以从容器中提取 IFoo 接口”之类的内容,如下所示:
这不再是真正的“单元”测试,因为它涉及多个类和一个 IoC 容器。我们称之为“组合测试”。
Your tests should focus more on the goal instead of the mechanism. Create tests that verify things like "if I throw types X, Y and Z together in a container, then I can pull an IFoo interface from the container", like this:
This is no longer a real "unit" test because it involves multiple classes and an IoC container. We just call them "composition tests".
经过几个小时的思考并再次阅读一些 TDD 博客后,我应该说,是的,我必须测试我的类是否具有 MEF 属性。
因此,在重构我的类之前,我以这种方式编写单元测试:
对于其他 MEF 属性,例如 [ImportingConstructor] 或 [PartCreationPolicy],我以相同的方式进行操作。
After thinking some hours and reading some TDD blogs again I should say, YES, I have to test whether my class has MEF attributes or not.
So before refactoring my classes I write unit tests in that way:
For other MEF attributes like [ImportingConstructor] or [PartCreationPolicy] I do it the same way.