use*_*806 5 java spring spring-aop
我有弹簧aop方面,它有如下方法:它是在特定方法之前调用的方面.
public void someMethod(JoinPoint jp) {
//Somelogic
}
Run Code Online (Sandbox Code Playgroud)
我需要为此编写一个junit测试用例.我如何实例化并发送参数someMethod?我的意思是我怎么能用JoinPointargs 填充?如何在关节点设置参数并传递它?aspect在应用程序上下文xml文件中配置.
谢谢!
我想你在这里有几个不错的选择......
JoinPoint是一个界面.因此,您应该能够创建自己的"存根"实现,该实现具有您期望的行为.在测试中,实例化此存根的新实例并将其传递给someMethod方法.JoinPoint对象,并在模拟上设置预期的行为.如果您不熟悉一般的模拟框架,这可能听起来有点异国情调,所以我建议您看看Mockito上的这个文档,这是一个流行的模拟框架.当谈到单元测试时,最佳实践(至少我的)建议测试应该总是使用某种类型的模拟/存根(对于成员和传递的参数)来确保单元测试仅测试单元.如果你使用的实现JoinPoint了Spring/AspectJ的使用,那么你也可能是测试的一些逻辑的实现在你的单元测试.如果将来这些实施细节发生变化,您的测试可能会在没有任何代码更改的情况下中断.
| 归档时间: |
|
| 查看次数: |
2611 次 |
| 最近记录: |