JUnit 规则

2025 年 5 月 8 日 | 阅读 3 分钟

在上面的示例中,我们使用了 JUnit runner (MockitoJUnitRunner)。它使测试依赖于该特定的 runner。

我们不能在同一个测试中使用多个 runner。为了克服这个问题,我们应该遵循 JUnit 规则,这使测试更灵活。它允许我们在同一个测试中使用多个规则。

JUnit 规则定义为一种组件,用于阻止测试方法的调用,并允许我们在调用测试方法之前和之后执行某些操作。 JUnit 提供了以下规则:

  • 创建在测试方法运行后删除的目录/文件。
  • 如果描述的超时时间在调用测试方法之前已超过,则测试失败。
  • 在调用测试方法之前,建立外部资源,如套接字或数据库连接。
  • 在调用测试方法后,释放配置的外部资源。

要使用 JUnit 规则,我们需要在测试中添加 @Rule 注解。

@Rule: 它注解字段。它引用规则或返回规则的方法。带注解的字段必须是公共的、非静态的,并且是 TestRuleMethodRule 的子类型。

在上面的代码片段中,我们使用了 MockitoRule 类。您可以根据您的需求使用任何 JUnit 规则。

JUnit 规则示例 (MockitoRule)

在这里,我们将使用 JUnit 规则创建一个示例。在本例中,我们使用 MockitoRule,您可以根据您的需求使用任何 JUnit 规则。

步骤 1:创建一个名为 ToDoService 的接口,其中包含两个未实现的方法。

ToDoService.java

步骤 2:创建一个名为 ToDoBusiness 的实现类。

ToDoBusiness.java

步骤 3:创建一个名为 ToDoBusinessMock 的测试类,其中定义了业务逻辑。

ToDoBusinessMock.java

输出

以下输出显示使用 JUnit 规则 (MockitoRule) 成功运行了测试。

JUnit Rules
下一个主题PowerMock