项目正常启动的时候需要从main函数的args数组传入一些参数初始化,现在要写单元测试,发现SpringBootTest不指定启动类会出现context为Null的问题,而指定启动类就会出现空指针,因为无法获取到args的参数,我现在困惑两个问题,第一为什么不指定启动类可以运行,指定启动类就运行不了,可能是指定了启动类会执行某个类的时候获取args参数获取不到就中断了启动,第二指定启动类的话任何获取args参数,或者能不能通过其他办法设置,试过在before里设置发现不行
项目正常启动的时候需要从main函数的args数组传入一些参数初始化,现在要写单元测试,发现SpringBootTest不指定启动类会出现context为Null的问题,而指定启动类就会出现空指针,因为无法获取到args的参数,我现在困惑两个问题,第一为什么不指定启动类可以运行,指定启动类就运行不了,可能是指定了启动类会执行某个类的时候获取args参数获取不到就中断了启动,第二指定启动类的话任何获取args参数,或者能不能通过其他办法设置,试过在before里设置发现不行
3 回答3.7k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
2 回答1.8k 阅读
1 回答811 阅读✓ 已解决
1 回答1.6k 阅读
2k 阅读
第一为什么不指定启动类可以运行,指定启动类就运行不了,可能是指定了启动类会执行某个类的时候获取args参数获取不到就中断了启动,
答:不指定启动类是不能运行的,会做很多事情,最重要的一件事情将需要的类放到bean容器中,你可以在测试类中获取bean容器的的类
使用启动类的main方法启动,可以获取到args参数,但是如果使用测试类启动,main方法在junit中,main方法中的args参数传递不到启动类中
第二指定启动类的话任何获取args参数,或者能不能通过其他办法设置,试过在before里设置发现不行
答:有其他方法,在启动的main方法中手动构造args参数,然后传递给SpringApplication,