springboot整合JUnit.

整合Junit的代码如下所示:

BookDao:

 

测试程序:

通过自动装配把扫描到的含有bean注解的对象装配到bookdao引用属性中

 测试结果:

 

补充错误1:

刚才测试程序中的@SpringBootTest注解不包含@SpringBootApplication扫描bean注解的,但是值得让我们思考了:为什么测试程序中没有扫描bean 的注解但是可以获取到含有bean注解的对象BookDao呢?

 

 

 

 因此总结一句话:

其实运行测试程序类的时候,扫描获取含有bean注解对象是上面的测序类当中的@SpringBootApplication注解完成的,而不是测试程序中完成的,测试程序中压根就没有扫描含有bean注解的注解,但是测试程序中之所以能自动装配获取到含有bean注解的对象,就是上面的测序类当中的注解完成的,

因此测试程序所在的包名等级必须平等于程序类所在的包名或者低于程序类所在的包名等级(如程序类所在包名等级为:com.Bivin,那么测试程序类只能是:com.Bivin或者com.Bivin.等),因为只有低于程序类的包名了,当运行测试程序的时候,才会先执行到程序类当中的扫描含有bean注解对象的注解,才会先知道哦原来扫描到的bean是BookDao对象,最后在知道扫描到的bean是谁后运行测试程序了才能知道自动装配就装配刚才程序类扫描到的BookDao对象,高于程序类的包名的话就会报错(因为还不知道扫描的bean是谁呢 就运行测试程序类了【虽然我们运行的是测试程序,但我们可以理解为程序类和程序程序类一起跑的,就能知道为什么包名有级别了】)

报错信息如下所示:

 

如果就想让测序程序类所在的包名高于程序类所在的包名的话(并且不报错):

解决方法如下所示:

classes = Springboot03JunitApplication.class

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值