使用FEST进行多个JUnit测试

时间:2011-01-29 13:33:13

标签: java swing junit junit4 fest

我已经编写了几个JUnit测试方法来测试我的Java Swing GUI(使用FEST)。我的课程格式如下:

public class Tests
{

    @BeforeClass
    public static void beforeClass() throws Exception { ... }

    @Before
    public void before() throws Exception { ... }

    @After
    public void after() throws Exception { ... }

    @AfterClass
    public static void afterClass() throws Exception { ... }

    @Test
    public void testA() { ... }

    @Test
    public void testB() { ... }

    @Test
    public void testC() { ... }

}

当我在Eclipse中运行此类时,它只运行testA测试,而不是testB或testC。如果我注释掉testA,testB就会运行 - 所以它似乎每次只运行第一次测试。

Eclipse中的JUnit在完成第一次测试后显示“运行:2/3”,但不再进一步,或显示任何错误。

我有什么问题吗?我正在使用JUnit 4.8.1和FEST 1.2。

2 个答案:

答案 0 :(得分:3)

我怀疑您在testA中有副作用阻止testB中的代码运行。如果没有testAtestB中的详细信息,很难说清楚发生了什么,但我可以给你一些一般指导。

通过评论testA,您将有一个良好的开端。执行此操作时,请同时执行testBtestC吗?

尝试向下深入testA并慢慢评论testA下方的详细信息,直到您测试同时运行testAtestB。一旦你完成了这个,你至少知道哪里问题。

例如,如果您的代码类似于:

public void testA() {
    doX();
    doY();
    doZ();
    // Assert stuff
    ...
 }

doX()之后注释掉所有内容,看看会发生什么。如果可行,则取消注释doY()并查看会发生什么。如果它不起作用,请深入查看doX()并开始注释并重新运行测试。

这可以帮助您查明出错的详细信息。如果你在想出这个问题时仍然感到难过,那就回过头来问一些关于这些细节的问题。

祝你好运找到你的错误!

答案 1 :(得分:0)

似乎你的代码片段没问题。

您可以检查每个@Test方法是否独立给其他人,每个测试方法不应共享相同的上下文。确保@Before@After具有正确的行为。