1. 概述
测试对于任何应用程序都至关重要,无论是单元测试还是集成测试。SpringRunner和SpringBootTest类构成了运行集成测试的基础。
在本教程中,我们将介绍这两者。我们将学习如何在代码中使用它们并了解它们的相似点和差异。
2. SpringRunner
SpringRunner是SpringJUnit4ClassRunner 类的别名,适用于基于JUnit 4的测试类。它加载Spring TestContext,通过它Spring bean和配置可以与JUnit注解一起使用。我们需要JUnit 4.12或更高版本才能使用它。
要在代码中使用它,请使用@RunWith(SpringRunner.class)标注测试类:
@RunWith(SpringRunner.class)
public class SampleIntegrationTest {
@Test
public void test() {
// ...
}
}
3. SpringBootTest
SpringBootTest是SpringRunner的替代方案,可与JUnit 5配合使用。它还用于运行集成测试和加载Spring TestContext。
它非常丰富,并通过其注解参数提供了许多配置。它支持各种Web环境模式,例如MOCK、RANDOM_PORT、DEFINED_PORT和NONE。我们可以通过在测试运行之前注入到Spring环境中的注解来传递应用程序属性:
@SpringBootTest(
properties = {"user.name=test_user"},
webEnvironment = MOCK)
public class SampleIntegrationTest {
@Test
public void test() {
// ...
}
}
在类级别需要标注@SpringBootTest才能运行集成测试。
4. SpringRunner和SpringBootTest的比较
在下表中,我们比较了这两个注解的优缺点。
SpringRunner | SpringBootTest |
---|---|
用于运行集成测试并加载Spring TestContext | 用于运行集成测试并加载Spring TestContext |
JUnit注解也可以使用 | JUnit注解也可以使用 |
需要JUnit 4.12或更高版本 | 需要JUnit 5或更高版本 |
就配置而言,API并不丰富 | 提供丰富的API来配置测试配置 |
不建议 | 推荐,因为它支持新功能并且易于使用 |
5. 总结
在这篇文章中,我们了解了SpringRunner和SpringBootTest。我们已经学会了如何使用它们,并对它们进行了比较,了解了它们的差异和相似之处。
我们应该使用SpringBootTest,因为它支持最新的JUnit,但是每当需要使用JUnit 4时,SpringRunner也是不错的选择。
Show Disqus Comments
Post Directory
扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章