我正在使用JUnit 4(junit-4.8.2.jar)在我的Java项目上运行测试,并在使用assumeTrue时遇到问题。我有这个基本设置:
public class ClientTest extends TestCase {
@BeforeClass
public void setUp() {
assumeTrue(isPaidAccount());
}
@Test
public void testTheThings() {
// run this test if the user has a paid account
}
}
方法isPaidAccount()返回false,这是预期的,但是忽略了类中的测试,它们都将作为错误返回。这在Eclipse中与JUnit4 Test Runner以及maven一起发生。我也尝试将assumeTrue移动到@Before方法中,如下所示:
public class ClientTest extends TestCase {
@BeforeClass
public void setUp() {
// set up
}
@Before
public void mustHavePaidAccount() {
assumeTrue(isPaidAccount());
}
@Test
public void testTheThings() {
// run this test if the user has a paid account
}
}
然而,当我这样做时,它完全忽略了@Before方法,并且无论如何都只是运行测试。同样,我对Eclipse Test Runner和maven都有相同的行为。我确定我做的事情显然是不正确的,但我不确定它是什么。
答案 0 :(得分:7)
扩展TestCase
适用于JUnit 3.x,使用注释是JUnit 4.x.如果你删除extends TestCase
它应该有用。