依赖注入在 Postsharp 中不起作用。如何使方面可测试?我真的想避免创建具体的类来登录我的方面。
当我使用单元测试方法时,我不希望方面运行。如果我正在测试一种方法,我不希望在测试期间触发日志记录方面并尝试创建具体的记录器。
我喜欢 Postsharp 的想法并且很想使用它,但是这两个问题似乎给我带来了太多的麻烦。
有任何想法吗?
对于某些第三方工具,例如 log4net,配置语言足够强大,您可以在单元测试项目中以一种方式配置(例如)日志记录方面,在实际项目中以另一种方式配置。因此,日志方面甚至在您的单元测试中运行,但实际上可能什么都不做。
对于其他工具或您自己的自定义解决方案,您最好在方面逻辑内对接口进行编程。然后,基于静态配置文件或项目特定的设置代码,您可以为生产代码指定一个接口实现,为单元测试项目指定另一个接口实现(可能是没有副作用或更好的存根实现,记录什么可能会发生单元测试的验证)。
更好的是:您可以使用 MSBuild 命令在单元测试项目中禁用 PostSharp。请参阅此讨论。
这个问题现在在 PostSharp 文档中得到解决: