contextLoads 方法在 Spring Boot Junit Testcases 中的用途是什么?
2022-09-04 04:22:46
此方法在我的所有 JUnit 测试用例中都是空的。这种方法有什么用?
Sonarqube抱怨
“添加一个嵌套的注释,解释为什么这个方法是空的,抛出一个不受支持的OperationException或完成实现。
我可以通过添加一些评论来绕过这一点,但我只想知道为什么有必要。
此方法在我的所有 JUnit 测试用例中都是空的。这种方法有什么用?
Sonarqube抱怨
“添加一个嵌套的注释,解释为什么这个方法是空的,抛出一个不受支持的OperationException或完成实现。
我可以通过添加一些评论来绕过这一点,但我只想知道为什么有必要。
当您使用 Spring 初始值设定项构建 Spring 引导应用程序时。它使用空方法自动为您创建一个测试类。contextLoads
@SpringBootTest
class ApplicationContextTest {
@Test
void contextLoads() {
}
}
请注意注释的使用,它告诉Spring Boot查找一个主要配置类(例如,具有@SpringBootApplication的配置类),并使用它来启动Spring应用程序上下文。空是一个测试,用于验证应用程序是否能够成功加载Spring上下文。@SpringBootTest
contextLoads()
如果 sonarqube 抱怨空方法,那么你可以做这样的事情来验证你的控制器或服务 Bean 上下文:-
@SpringBootTest
public class ApplicationContextTest {
@Autowired
private MyController myController;
@Autowired
private MyService myService;
@Test
public void contextLoads() throws Exception {
assertThat(myController).isNotNull();
assertThat(myService).isNotNull();
}
}
使用不同的流道,
如果您使用的是 ,请使用替代方法,例如 或 更确切地说,然后SpringRunner.class
MockitoJUnitRunner.class
MockitoJunitRunner.class
SpringRunner.class
@Runwith(SpringRunner.class)
@Runwith(JUnit4ClassRunner.class)
@Runwith(MockitoJUnit4Runner.class)
@Runwith(MockitoJUnitRunner.class)