2011-08-08 22 views
1

我正在使用JUnit 4(junit-4.8.2.jar)在我的Java项目上运行测试,并在使用assumeTrue时遇到问题。我有这样的基本设置:在JUnit4中假设True错误而不是忽略测试

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()就要回来了假,这是预期的,但不是在类中的测试被忽略,他们都回来为错误。 Eclipse中使用JUnit4测试运行器以及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中都得到了相同的行为。我确信我正在做一些明显不正确的事情,但我不确定它是什么。

回答

7

扩展TestCase用于JUnit 3.x,使用注释是JUnit 4.x.如果你放弃extends TestCase它应该工作。

+0

是的!奇迹般有效。 –