JUnit4中的assumeTrue错误而不是忽略测试

时间:2011-08-08 17:46:53

标签: java junit junit4

我正在使用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都有相同的行为。我确定我做的事情显然是不正确的,但我不确定它是什么。

1 个答案:

答案 0 :(得分:7)

扩展TestCase适用于JUnit 3.x,使用注释是JUnit 4.x.如果你删除extends TestCase它应该有用。