将 Junit4 测试用例迁移到 Junit5

问题描述 投票:0回答:2

我有这个 JUnit4 测试,我想将其迁移到 JUnit5:

import org.junit.runner.RunWith;

@RunWith(MockitoJUnitRunner.StrictStubs.class)
public class TasksTest {

  @Test(expected = Exception.class)
  public void createTaskTest() {
    .....
  }
}

迁移这个的正确方法应该是什么?

import org.junit.runner.RunWith;

@RunWith(MockitoJUnitRunner.StrictStubs.class)
public class TasksTest {

  @Test(expected = Exception.class)
  public void createTaskTest() {
    .....
  }
}

但是我收到这些错误:

Incompatible types. Found: 'java.lang.Class<org.mockito.junit.MockitoJUnitRunner.StrictStubs>', required: 'java.lang.Class<? extends org.junit.jupiter.api.extension

Cannot resolve method 'expected'

您能建议如何解决这个问题吗?

junit junit5
2个回答
0
投票
JUnit 指南中的

迁移提示建议使用

Assertions.assertThrows

@Test
public void createTaskTest() throws Exception {
    Assertions.assertThrows(Exception.class, () -> {
        //.....
    });
}

关于IDEA中的“迁移”重构,有票支持

expected
timeout
https://youtrack.jetbrains.com/issue/IDEA-230146,可以投票


0
投票

import org.junit.runner.RunWith;:这会从 org.junit.runner 包中导入 RunWith 类。 RunWith 注释用于指定应使用哪个测试运行器来执行测试。

@RunWith(MockitoJUnitRunner.StrictStubs.class):此注释指定 TasksTest 类中的测试应使用 MockitoJUnitRunner.StrictStubs 运行器运行。该运行器由 Mockito 库提供,并设置使用模拟对象的测试环境。

public class TasksTest { ... }:这定义了 TasksTest 类,它可能包含用于测试 Tasks 类行为的测试方法。

@Test(expected = Exception.class):该注解用在 createTaskTest() 方法上方,表示测试期望在测试方法执行期间抛出 Exception 类型的异常。 我还可以解决许多疑问,您也可以访问这个网站

© www.soinside.com 2019 - 2024. All rights reserved.