如何为测试方法运行许多测试用例

时间:2009-12-08 02:57:45

标签: unit-testing testing junit

我正在使用JUnit.I有一个测试方法来测试方法和一些测试用例。我想在该测试方法中运行所有测试用例,但我不能这样做。当第一个测试用例失败时,测试方法不运行第二个测试用例

这是我的代码

public class ComputeServiceTest extends TestCase {

//test add method
public void testAdd()
{
    ComputeServices 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
    int x2 = 9;
    int y2 = 6;

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


}

我该怎么做?

2 个答案:

答案 0 :(得分:3)

这里的标准建议是将您的第二个测试用例放入一个单独的方法,然后无论第一个“测试用例”是否成功,它都会运行。

您可以使用setUp方法初始化ComputeServices实例,这样您就不需要在每个测试方法中使用该样板。

答案 1 :(得分:2)

测试用例在第一次断言失败时中止,这是设计的。

这是为了隔离测试用例:如果第二个断言失败,你怎么知道instance.add(9,6)是否被破坏,或者这是否是第一次调用add()方法引起的?

当测试中的方法返回一个对象时,这很有用,或者在出现错误时为NULL。第一个断言确保方法返回一个对象,然后可以调用该对象的方法来验证其状态。当返回NULL时,测试用例在第一个断言中止,将抛出NullPointerException(模式名为guard assertion)。

可以在TestCase中使用尽可能多的测试方法。