deg*_*ath 2 java testing spring spring-boot
当我创建Spring Boot Application时,它会生成2个类:
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
第二个是测试:
@RunWith(SpringRunner.class)
@SpringBootTest
public class AppTest {
@Test
public void contextLoads() {
}
}
Run Code Online (Sandbox Code Playgroud)
更新:
我喜欢readed回答这个,但它并没有给我一个明确的答复。
将其留空。如果在加载应用程序上下文时发生异常,测试将失败。这个测试只是说“我的应用程序是否会在不引发异常的情况下加载”
您希望保留此测试的原因是,当某项失败时,您希望找到根本原因。如果您的应用程序上下文无法加载,您可以假设所有其他失败的测试都是由此引起的。如果上述测试通过,您可以假设失败的测试与加载上下文无关。
实际上,main()单元引导/集成测试未涵盖Spring Boot应用程序的方法,因为Spring Boot测试不会调用该main()方法来启动Spring Boot应用程序。
现在,我认为这篇文章的所有答案似乎都过分了。
他们希望添加对该main()方法的测试,以使度量工具满意(Sonar)。
加载Spring上下文和加载应用程序需要时间。
不要在每个开发人员版本中添加它,只是为了赢得应用程序约0.1%的覆盖率。
我添加了一个答案。
除了简单的示例和您引用的其他文章之外,如果绝对main()包含一些逻辑,则为该方法创建测试可能是有意义的。例如,当您将特定参数传递给应用程序时,您可以在main()聚会中处理它们。
| 归档时间: |
|
| 查看次数: |
2324 次 |
| 最近记录: |