某天给某个接口写了个很简单的单元测试,结果跑测试的时候报空指针,service没注入进去,但是我用postman调用这个接口的时候,又是正常的有数据返回的,百思不得其解。我用的是testNG做的测试,copy了别人的代码……最后,我比对了我和别人的代码发现我少继承了一个AbstractTestNGSpringContextTests类……全剧终
我是这样写的:
百度 一波:
AbstractTestNGSpringContextTests这个类的作用:测试类只有继承了该类才拥有注入实例的能力。
所以我之前报空指针,就是因为实例注入不进来,就是因为测试类没有继承这个类。
something else
AbstractTestNGSpringContextTests:测试类只有继承了该类才能拥有注入实例能力,否则注入报错
AbstractTransactionalTestNGSpringContextTests:测试类继承该类后拥有注入实例能力,同时拥有事物控制能力
@Rollback注解:默认为true,即case执行前开启事物,case结束后rollback回滚事物。
如果不想回滚可以在case上添加注解@Rollback(false)
放一放一位老哥的链接:
spring集成testng