我正在使用Spring-WS和WebServiceTemplate类编写Web服务客户端。在WebServiceTemplate类的碗中,创建WebServiceConnection。 WebServiceConnection.send用于实际发送消息。我想要做的是拦截对WebServiceConnection.send的调用,并用一些检查传递给WebServiceConnetion.send的对象的逻辑替换它。
这让我觉得这是一个使用Aspects的好地方。但是,我不确定如何只在我执行单元测试时运行方面。我还希望根据我正在执行的测试运行不同的方面。
任何人对如何做到这一点都有任何想法?
答案 0 :(得分:2)
您可以使用AspectJ运行时编织。您不必将这些方面编译到yout应用程序中,它应该在测试时包含它们。
由于在使用AspectJ时类路径上必须有META-INF / aop.xml,并且由于必须使用-agent:myPath / aspectjweaver.jar启动JVM,因此您可以使用工具来使用AspectJ只有在测试时。
哦,如果你使用AspectJ来编译你的应用程序,你可以在测试时使用其他方面,如果你将运行时编织和编译时编织结合起来。