《Junit In Action》学习笔记(一)

类别:软件工程 点击:0 评论:0 推荐:
《Junit In Action》是Minning公司《Java人的工具箱》系列丛书之一,其封面设计选自1799年初版于西班牙马德里的一本各地服装简编书。Minning想通过书中生动多样、颜色鲜明的图画表达当前个人生活的多姿多彩,以“换取更多彩也更有趣的精神与文明”。“更多彩也更有趣”——正是我阅读此书的感受。《Junit In Action》对于测试理论和Junit的描述深入浅出,作者的语气非常温和,感觉象面对面聊天那样的亲切,让人有一种持续阅读的欲望。作者想说的是:测试其实非常简单,请愉快地测试吧!

其实,在学习Junit之前,我已经在编写代码的过程中不自觉的实现了最基本的测试方式——源程序+良好的异常处理机制+以Demo形式出现的大大小小的测试程序。通常,在测试程序中,会针对各个函数设计一些小场景,给一个输入,然后查看输出;如果抛错,利用良好的异常处理机制可以比较迅速的定位错误。相信有很多人在学会单元测试之前,也走过这个过程。

这可是一个耗时长、代码冗余量大的过程——简言之,a stupid process !

《Junit In Action》的第一章介绍的测试demo基于命令行方式(javac与java命令)实现。我个人认为对于团队开发而言,没什么意义——一个成熟而实用的IDE能带来比“命令行+文本编辑器”更高的效率和“更多彩也更有趣”的编程体验。程序员应当将精力集中于代码本身,而不是开发工具。因此,第一章里看看几个demo代码就可以了。不过,可不要忽视那些印象中比较枯燥的文字——它们从一个完全不懂测试的程序员的角度阐明了“why test”的问题。哦,亲切的文字。

第二章里的图简单明了。记住图就记住了Junit的结构,也很容易推出它的使用方式——几个以test***方式命名的方法构成一个TestCase(实际上就是一个extends了junit.framework.TestCase类的子类),几个TestCase构成一个TestSuite,一个或多个TestSuite由TestRunner运行。Junit提供几个默认的test runner,如果没有自定义的test suite,test runner会为整个测试生成一个test suite。test suite可以嵌套。

典型代码:
public class Tester extends TestCase {
    public void test***() {...}
}
//自定义test suite<懒人们还是用Junit的自动test suite比较好>
public class TestAll {
    public static Test suite() {
        TestSuite suite = new TestSuite();
        suite.addTest(new Tester(“test***“));
        return suite;
    }
    //或者
    public static Test suite() {
        return new TestSuite(Tester.class);
    }
}

本文地址:http://com.8s8s.com/it/it32397.htm