AspectJ和模仿对象的测试灵活性 - 编程入门网
//[...]
然后 aspect 在每个相关的方法调用上定义 around 建议。当 ClientBeanTest 中出现对 getCustomersOver() 或 register() 的调用时,将改为执行相关的建议,如清单 12 所示: 清单 12. 建议替换测试中的方法调用
这里的第二个配置在某种程度上简化了测试代码(请注意,对于没有实现的方法,我们不需要分开的模仿类或存根)。 AspectJ和模仿对象的测试灵活性(10)时间:2011-06-25 IBM Nicholas Lesiecki可插的测试配置 AspectJ 允许您随时在这两种配置间切换。因为 aspect 可能影响不了解这两种配置的类,所以在编译时指定一组不同的 aspect 可能会导致系统在运行时和预期完全不同。样本应用程序就利用了这一点。构建替换调用和替换对象示例的两个 Ant 目标几乎完全相同,如下所示: 清单 13. 不同配置的 Ant 目标
Ant 脚本将 argfile 属性传送到 AspectJ 编译器。AspectJ 编译器使用该文件来决定在构建中包括哪些来源(Java 类和 aspect)。通过将 argfile 从 objectReplacement 改为 callReplacement ,构建可以用一个简单的重编译改变测试策略。 插入 Cactus 示例应用程序与 Cactus 捆绑在一起提供,Cactus 是用来执行应用程序服务器中的测试的。要使用 Cactus,您的测试类必须继承 org.apache.cactus.ServletTestCase (而不是通常的 junit.framework.TestCase )。这个基类将自动与部署到应用程序服务器的测试对话。因为测试的“ callReplacement ”版本需要服务器,但“ objectReplacement ”版本不需要,所以我使用了 AspectJ 的另一种功能(叫作 介绍(introduction))来使测试类意识到服务器。 ClientBeanTest 的源版本将继承 TestCase 。如果我希望在服务 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |