JUnit的acsubyTrue如何与“之前”和“之后”的注释一起工作?
我正在寻找一些关于如何在JUnit中工作的验证。我想在方法中使用它,以便在不满足条件时可以避免运行测试套件。Assume.assumeTrue()
@BeforeClass
但是,我想知道该方法的性质。如果收到具有 false 值的参数,它是跳过方法的其余部分(用 )进行注释,还是执行其余指令的其余部分。assumeTrue
@BeforeClass
我也很好奇它对注释如下的方法可能具有的任何其他含义:
@After
@Before
@AfterClass
编辑:
在通过一个非常基本的测试运行它之后,如果曾经运行过,那么该方法的其余部分以及任何用 或 注释的方法将被忽略。assumeTrue(false)
@Test
@After
@Before
对我来说,跳过该方法的其余部分以及它也忽略了并且除了if被放置在方法中之外,这有点令人惊讶。文档没有指定这种行为(我在提出问题之前检查了一下)。@Before
@After
@Test
assumeTrue
@BeforeClass
编辑2:在方法中使用是非常合理的,因为在运行测试套件之前,您可能需要检查环境变量(即您的构建/测试计算机需要资源)。这有助于避免由慢速系统引起的测试失败(如超时)。assumeTrue()
@BeforeClass
我运行的测试看起来像这样
@BeforeClass
public static void beforeClassMethod()
{
System.out.println("BeforeClass assume");
Assume.assumeTrue(false);
System.out.println("AfterClass assume");
}
@Before
public void beforeMethod()
{
System.out.println("Before");
}
@Test
public void testMethod()
{
System.out.println("Test");
}
@After
public void afterMethod()
{
System.out.println("After");
}
@AfterClass
public static void afterClassMethod()
{
System.out.println("AfterClass");
}
Output:
BeforeClass assume
AfterClass