使用Junit测试Spring中的Service层方法时,
有@Async
作为Annotation的异步方法应该如何测试?
在JUNIT测试中其直接作为异步执行,但是实际上却是没有执行成功(将rollback置为false数据库中没有持久化,调用了消息推送接口也没有进行推送,所以判断其没有完整执行)
那么在Spring中如何对异步方法进行测试?
使用Junit测试Spring中的Service层方法时,
有@Async
作为Annotation的异步方法应该如何测试?
在JUNIT测试中其直接作为异步执行,但是实际上却是没有执行成功(将rollback置为false数据库中没有持久化,调用了消息推送接口也没有进行推送,所以判断其没有完整执行)
那么在Spring中如何对异步方法进行测试?
3 回答2.6k 阅读✓ 已解决
3 回答4.1k 阅读✓ 已解决
8 回答3.7k 阅读
4 回答2.8k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
4 回答1.9k 阅读
http://jinnianshilongnian.iteye.com/blog/1901693
这个blog说的比较详细了,总结下就是:
1、@Aysnc方法无事务时用Future.get()可以在主线程获取到异步线程的结果。
2、@Async有事务时在Spring的test配置文件中去除异步配置让@Async失效当做同步来测。