3

依赖注入在 Postsharp 中不起作用。如何使方面可测试?我真的想避免创建具体的类来登录我的方面。

当我使用单元测试方法时,我不希望方面运行。如果我正在测试一种方法,我不希望在测试期间触发日志记录方面并尝试创建具体的记录器。

我喜欢 Postsharp 的想法并且很想使用它,但是这两个问题似乎给我带来了太多的麻烦。

有任何想法吗?

4

3 回答 3

0

对于某些第三方工具,例如 log4net,配置语言足够强大,您可以在单元测试项目中以一种方式配置(例如)日志记录方面,在实际项目中以另一种方式配置。因此,日志方面甚至在您的单元测试中运行,但实际上可能什么都不做

对于其他工具或您自己的自定义解决方案,您最好在方面逻辑内对接口进行编程。然后,基于静态配置文件或项目特定的设置代码,您可以为生产代码指定一个接口实现,为单元测试项目指定另一个接口实现(可能是没有副作用或更好的存根实现,记录什么可能会发生单元测试的验证)。

于 2013-02-26T22:00:56.640 回答
0

更好的是:您可以使用 MSBuild 命令在单元测试项目中禁用 PostSharp。请参阅此讨论

于 2013-02-26T22:40:50.193 回答
0

这个问题现在在 PostSharp 文档中得到解决:

http://doc.postsharp.net/postsharp-3.0/Content.aspx/PostSharp-3.0.chm/html/2ad6cf92-08eb-4537-a434-d88a3e493721.htm

于 2013-04-26T15:32:01.090 回答