使用 MockWebServer 的测试类不需要运行器吗?

问题描述

我有一个非常基本的问题,我是单元测试的新手,我有一个测试类,我正在使用 MockWebServer 测试 Spring WebClient。所有的测试都运行良好,但是为什么在使用 MockWebServer 时我们不需要运行器呢?使用 Mockito 时,我们使用 @RunWith(MockitoJUnitRunner.class) 注释类。

解决方法

JUnit 4 RunnerRule 或 JUnit Jupiter Extension 方便地负责(除其他外)测试设置,例如在后台为您启动和停止 MockWebServer

您不必使用 Runner/RuleExtension 进行测试,并且可以手动启动/停止您的测试基础架构 @BeforeAll/@AfterAll 或测试内部。

但是,这会向需要这种基础设施的每个测试添加样板代码,如果您的测试库提供了,您可以将此任务委托给 Runner/RuleExtension

MockWebServer 的特定示例中,您可以使用 their JUnit 4 rule、它们的 JUnit 5 integration,或自行执行服务器的启动/停止操作。