紫郢青索

知之者不如好之者,好之者不如乐之者

用户工具

站点工具


JUnit JUnitCore 使用示例

在任何以增量模式构建的应用程序中,每当引入新功能时,通常希望只运行某些单元测试。这可以通过使用JUnit框架的JUnitCore类来实现。

JUnitCore 是JUnit包内置的类,它使用观察者模式实现,可以使用它来执行执行的单元测试。

JUnitCore的实例

假设,在要发布的应用中新增加了两个新功能。这两个新功能暴露了两个接口,接口的名称分别是:FeatureOneFeatureTwo

新功能单元测试代码

下面是两个接口的单元测试代码:

import junit.framework.Assert;
 
import org.junit.Test;
 
public class TestFeatureOne {
    @Test
    public void testFirstFeature()
    {
        Assert.assertTrue(true);
    }
}
import junit.framework.Assert;
 
import org.junit.Test;
 
public class TestFeatureTwo {
    @Test
    public void testSecondFeature()
    {
        Assert.assertTrue(true);
    }
}

使用JUnitCore执行单元测试

运行上面两个新功能的单元测试,我们可以使用JUnitCore按下面的方式编写代码:

import java.util.ArrayList;
import java.util.List;
 
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
 
import com.howtodoinjava.junit.TestFeatureOne;
import com.howtodoinjava.junit.TestFeatureTwo;
 
@SuppressWarnings("rawtypes")
public class WithJUnitCore
{
    public static void main(String[] args)
    {
        List testCases = new ArrayList();
 
        //Add test cases
        testCases.add(TestFeatureOne.class);
        testCases.add(TestFeatureTwo.class);
 
        for (Class testCase : testCases)
        {
            runTestCase(testCase);
        }
    }
 
    private static void runTestCase(Class testCase)
    {
        Result result = JUnitCore.runClasses(testCase);
 
        for (Failure failure : result.getFailures())
        {
            System.out.println(failure.toString());
        }
    }
}

使用JUnitCore在命令行下运行测试用例

$ java org.junit.runner.JUnitCore TestFeatureOne TestFeatureTwo 

使用JUnitCore运行所有的测试

强烈建议创建JUnit套件并在应用程序范围内执行所有测试用例。虽然需要做一些工作,但仍然是在JUnit中执行所有测试的最佳方法。

@RunWith(Suite.class)
@SuiteClasses({ TestFeatureOne.class, TestFeatureTwo.class })
public class TestFeatureSuite {
    //
}

参考资料JUnitCore Java Doc