JUnit单元测试

JUnit单元测试

JUnit单元测试发展到现在已经有了许多的支持,这里将介绍非注解模式的JUnit使用,虽然是非注解,但是并不比注解方式的难。注解方式的简单易用,百度或者谷歌都可以找到一堆教程。

后面的文章会介绍Junit注解方式和easymoke的结合使用。easymoke可以轻松为我们创建一个对象。不用全部代码写完后再执行单元测试。

1.测试类

编写一个测试类继承TestCase就可以使用它的所有功能包括断言等,同时不用在每个方法开头加入@Test注解也可以运行

2.测试方法命名规则

需要运行的测试类必须以test开头,这样Junit才会识别

public class JunitTest extends TestCase {
    public JunitTest(String name) {
        super(name);
    }
    public void test1() {
        assertFalse(1 == 2);
    }
    public void test2() {
        assertEquals(5, 5);
    }
}

3.测试指定的方法

每个类都可以实现一个静态的suite方法,用于封装需要运行的测试方法

public static Test suite() {
    TestSuite suite = new TestSuite();
    suite.addTest(new JunitTest("test1"));
    suite.addTest(new JunitTest("test2"));
    return suite;
}

4.组合测试

当我们需要组合多个类同时运行的时候,可以使用suite的其他方法组合不同的类运行,当使用addTestSuite方法的时候,类的全部test开头方法都是执行,addTest方法只会执行返回的方法。

public static Test suite() {
    TestSuite suite = new TestSuite();
    suite.addTestSuite(JunitTest.class);
    suite.addTest(JunitTest.suite());
    return suite;
}

5.环境创建和清理-方法级别

对于方法,可能在执行之前需要创建环境,方法执行完后需要清理环境。TestCase类提供了setUp和tearDown方法,可以重写后在每个方法前后都会执行。

@Override
protected void setUp() throws Exception {
    System.out.println("JunitTest.setUp");
}

@Override
protected void tearDown() throws Exception {
    System.out.println("JunitTest.tearDown");
}

6.环境创建和清理-类级别

对于有些资源可能在执行多个方法执行期间都是一样的,这样不需要每个方法都创建环境,只需要在开始执行之前和执行完后处理一次即可。只需要修改suite方法返回一个TestSetup对象即可。

public static Test suite() {
    TestSuite suite = new TestSuite();
    suite.addTest(new JunitTest("test1"));
    suite.addTest(new JunitTest("test2"));
    TestSetup testSetup = new TestSetup(suite) {
        @Override
        protected void setUp() throws Exception {
            System.out.println("junit.extensions.TestSetup.setUp");
        }

        @Override
        protected void tearDown() throws Exception {
            System.out.println("junit.extensions.TestSetup.tearDown");
        }
    };
    return testSetup;
}

 

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie
应支付0元
点击重新获取
扫码支付

支付成功即可阅读