此方法在我的所有JUnit测试用例中都是空的。这种方法有什么用?
Sonarqube正在抱怨 “添加一个嵌套注释,解释为什么此方法为空,抛出UnsupportedOperationException或完成实现。”
我可以通过添加一些评论来绕过这一点,但我只是想知道为什么它是必要的。
答案 0 :(得分:1)
使用其他跑步者,
如果您使用的是SpringRunner.class
,请使用MockitoJUnitRunner.class
或MockitoJunitRunner.class
之类的替代名称,而不要使用SpringRunner.class
@Runwith(SpringRunner.class)
@Runwith(JUnit4ClassRunner.class)
@Runwith(MockitoJUnit4Runner.class)
@Runwith(MockitoJUnitRunner.class)
答案 1 :(得分:1)
当您使用 Spring Initializer 构建 Spring 启动应用程序时。它使用 contextLoads
空方法自动为您创建一个测试类。
@SpringBootTest
class ApplicationContextTest {
@Test
void contextLoads() {
}
}
注意 @SpringBootTest
注释的使用,它告诉 Spring Boot 查找主配置类(例如带有 @SpringBootApplication 的类)并使用它来启动 Spring 应用程序上下文。 Empty contextLoads()
是用于验证应用程序是否能够成功加载 Spring 上下文的测试。
如果 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();
}
}