JUnit 中的注释列表

2022-09-01 12:51:01

最近,我研究并实现了JUnit框架。因此,我知道在JUnit中使用的注释很少:- , , 和 .@Test@Before@After@Ignore@BeforeClass@AfterClass@Runwith(Suite.class)@SuiteClasses({})@Parameters@RunWith(Parameterized.class)@Rule

我相信在JUnit中使用了更多的注释。任何人都可以用更多可以使用的注释列表来指导我,以及在什么情况下使用它们?

谢谢。


答案 1

此 Github 搜索 () 为您提供了所有注释的列表:@interface

https://github.com/junit-team/junit/search?q=%22%40interface%22&type=Code

基本批注

@Test@Before@After@AfterClass@BeforeClass@Ignore@Runwith

参数化测试

对于参数化测试,请使用和
https://github.com/junit-team/junit/wiki/Parameterized-tests@Parameters@RunWith(Parameterized.class)

类别

@Category
将测试分组到类别中。例如,快,慢等。

https://github.com/junit-team/junit/wiki/Categories


@IncludeCategory仅使用批注中给出的类别或该类别的子类型进行批注的类和方法。@IncludeCategory

@ExcludeCategory
@IncludeCategory

规则

@Rule
规则允许非常灵活地添加或重新定义测试类中每个测试方法的行为,例如,创建一个临时文件夹规则,以便在运行测试时创建一个临时文件夹。

https://github.com/junit-team/junit/wiki/Rules

理论和相关注释

@Theory
理论给出了更灵活和富有表现力的断言

https://github.com/junit-team/junit/wiki/Theories


@DataPoint 用 注释字段或方法将导致字段值或方法返回的值被用作该类中理论的潜在参数@DataPoint

@DataPoints

使用对数组或可迭代类型字段或方法进行注释的
扩展将导致数组或可迭代给定的值用作该类中理论的潜在参数@Datapoint@DataPoints

@FromDataPoints

注释方法的参数将限制被视为该参数的潜在值的数据点,仅具有给定名称@Theory@FromDataPoints@DataPoints


@ParametersSuppliedBy 对方法参数进行注释会导致在作为理论运行时为其提供命名值@Theory@ParametersSuppliedByParameterSupplier

@TestedOn

批注采用一个值数组,用作带批注参数的数据点。@TestedOn

例如:

@Theory
public void multiplyIsInverseOfDivideWithInlineDataPoints(
        @TestedOn(ints = {0, 5, 10}) int amount,
        @TestedOn(ints = {0, 1, 2}) int m
) {
    assumeThat(m, not(0));
    assertThat(new Dollar(amount).times(m).divideBy(m).getAmount(), is(amount));
}

答案 2

推荐