【问题标题】:How can I invoke assertXXX manytimes using setUp() and tearDown()如何使用 setUp() 和 tearDown() 多次调用 assertXXX
【发布时间】:2010-12-24 08:34:06
【问题描述】:

我正在使用 JUnit。 我想在一个测试方法中多次调用 assertEquals() 来测试许多不同的测试用例,但我不想有很多测试方法。 所以我使用 setUp() 和 tearDown()。 但是当第一个 assertEquals() 失败时。第二个 assertEquals() 不起作用,并且 setUp() 方法只是被调用了一次。

这是我的代码

public class ComputeServiceTest extends TestCase {

private ComputeServices instance = new ComputeServices();


public ComputeServiceTest(String name)
{
    super(name);        
}

protected void setUp()
{
    System.out.println("aaaaaaaaaaaaaaaaaaaaa");
    instance  = new ComputeServices();
}

protected void tearDown() {

}

//test add method
public void testAdd1()
{               
    //instance = new ComputeServices();
    //First test case 
    int x1 = 7;
    int y1 = 5;

    int expResult1 = 13;
    int result1 = instance.add(x1, y1);
    assertEquals("First test case fail",expResult1, result1);   

    //  Second test case
    System.out.println("AAAAAAAAAAAAAAAAAAAAAaaaaaaaaaa");
    int x2 = 9;
    int y2 = 6;

    int expResult2 = 16;

    int result2 = instance.add(x2, y2);
    assertEquals("Second test case fail",expResult2, result2);
}

}

请帮我修复这个错误。

【问题讨论】:

标签: unit-testing testing junit


【解决方案1】:

尝试使用parametrized tests

【讨论】:

    【解决方案2】:

    我认为您没有正确使用该工具 (JUnit)。

    单元测试可以失败或成功,没有半成功或半失败的测试。

    一个设置必须足以满足每个测试,如果您需要多个设置调用,那么您需要将多个测试放在一个中。

    我认为将您的测试拆分为许多较小的测试没有任何缺点。设置和拆卸不应该很繁重,测试应该始终以 ms 的顺序运行,并且测试的粒度越高越好,这样您就可以确切地知道哪些功能停止工作了。

    【讨论】:

      【解决方案3】:

      您应该让它们工作,或者如果您现在不想要,请将它们写入许多测试方法。

      问候

      迈克 [;-)

      【讨论】:

        【解决方案4】:

        如果你真的只想有一个测试方法,你可以在你独特的测试方法的末尾有一个断言:

        assertEquals("my big assertion", 
                     true, 
                     ((expResult1==result1) && (expResult2, result2));
        

        但我不建议这样做:你怎么知道哪个测试失败了?你不会有任何细节。

        您为什么不想避免在您的 TestCase 中使用多种测试方法?可能有另一种方法来实现你想要的。

        【讨论】:

          猜你喜欢
          • 2013-10-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-24
          • 2015-08-10
          • 1970-01-01
          • 1970-01-01
          • 2015-04-24
          相关资源
          最近更新 更多