1.介绍

在这篇快速文章中,我们将介绍@RunWithJUnit 5框架中的注释。

在JUnit 5中,@RunWith注释已经被更强大的注释所取代@ExtendWith注释

然而,@RunWith为了向后兼容,JUnit5中仍然可以使用注释。

2.使用基于junit4的运行器运行测试

可以在任何其他旧的JUnit环境中使用@RunWith注释。

让我们来看一个在只支持JUnit4的Eclipse版本中运行这些测试的示例。

首先,让我们创建要测试的类:

public class greeting {public static String sayHello() {return "Hello";}}

接下来,让我们创建这个简单的JUnit5测试:

public class GreetingsTest {@Test void whenCallingSayHello_thenReturnHello() {assertTrue(“Hello”.equals(Greetings.sayHello()));}}

最后,让我们添加这个注释来运行测试:

@RunWith(JUnitPlatform.class) public class GreetingsTest{//…}

JUnitPlatform类是一个基于JUnit4的运行器,它让我们在JUnit平台上运行JUnit4测试。

让我们请记住,JUnit4并不支持新JUnit平台的所有特性,因此这个运行器的功能有限。

如果我们在Eclipse中检查测试结果,我们可以看到使用了JUnit4运行器:

junit4测试

3.在JUnit5环境中运行测试

现在让我们在支持JUnit5的Eclipse版本中运行相同的测试。在这种情况下,我们不需要@RunWith我们可以在没有运行器的情况下编写测试:

public class GreetingsTest {@Test void whenCallingSayHello_thenReturnHello() {assertTrue(“Hello”.equals(Greetings.sayHello()));}}

测试结果表明,我们现在使用的是JUnit5运行器:

junit5测试

4.从基于junit4的Runner迁移

现在让我们将一个使用基于junit4的运行器的测试迁移到JUnit5。

我们将以Spring测试为例:

@ContextConfiguration(classes = {SpringTestConfiguration.class}) public class GreetingsSpringTest{//…}

如果我们想要将这个测试迁移到JUnit5,我们需要替换@RunWith使用新的@ExtendWith:

@ContextConfiguration(classes = {SpringTestConfiguration.class}) public class GreetingsSpringTest{//…}

SpringExtension类是由Spring 5提供的,并将Spring TestContext框架集成到JUnit 5中。的@ExtendWith注释接受实现扩展接口。

5.结论

在这篇简短的文章中,我们介绍了JUnit 4的使用@RunWithJUnit5框架中的注释。

示例的完整源代码是可用的在GitHub

通用的底部

开始使用Spring 5和Spring Boot 2,通过学习的春天课程:

>>看看这个课程
对这篇文章的评论关闭!