我有这个 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'
您能建议如何解决这个问题吗?
迁移提示建议使用
Assertions.assertThrows
:
@Test
public void createTaskTest() throws Exception {
Assertions.assertThrows(Exception.class, () -> {
//.....
});
}
关于IDEA中的“迁移”重构,有票支持
expected
和timeout
:https://youtrack.jetbrains.com/issue/IDEA-230146,可以投票
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 类型的异常。 我还可以解决许多疑问,您也可以访问这个网站