在测试redis集成短信验证时使用test启动类做单元测试,使用了spring注入。
@RunWith(SpringRunner.class)
@SpringBootTest(classes = RbacApplication.class)
public class SmsUtilTest extends RbacApplicationTest{
@Autowired
private SmsHelper smsHelper;
@Autowired
private RedisHelper redisHelper;
@Test
public void testSms() throws InterruptedException {
String tel = "158****9317";
//存的是key_tel_code_1_18812145852
String code = smsHelper.sendSmsCode(tel, 1);
log.info("验证码:"+code);
Thread.sleep(2000);
}
}
启动后报错:
java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]. Specify @BootstrapWith's 'value' attribute or make the default bootstrapper class available.
经查阅博客
https://blog.csdn.net/u013939884/article/details/70214093
https://blog.csdn.net/n_fly/article/details/78173385
发现是自己spring-test版本太高
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
</dependency>
改为
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
</dependency>
就能正常启动了