• JUnit4 学习笔记


    一、环境搭建:

    1、需要用的包:

      JUnit4.7:http://files.cnblogs.com/files/ShawnYang/junit4.7.zip

      hamcrest-1.2:http://files.cnblogs.com/files/ShawnYang/hamcrest-1.2.zip

    需要导入的jar包:

    2、需要注意的是,将JUnit包加入项目中之后,就不要使用eclipse自带的JUnit Library了。如果使用eclispe自带的JUnit包,又加上从外部引入的 hamcrest 包,那么在调试 test case 的时候会出现 classloader 相关的异常。所以要统一从外部引入。

    二、什么是单元测试

    写了个类,要给别人用,会不会有bug?怎么办?测试一下。
    用 main 方法测试好不好?不好!
    1、不能一起运行,也就是不能一次测试多个方法!
    JUnit可以选中类测试所有方法,也可以选中方法,测试单个方法,要灵活一些。
    2、大多数情况下需要人为的观察输出确定是否正确。

    JUnit 只需要鼠标选中整个类的测试方法 run as JUnit Test,如果bar为绿就说明整个类的所有方法测试通过了。

    三、为什么要进行单元测试
    重用测试,应付将来的实现的变化;
    提高自信心,明确知道自己的东西是没问题的。

    JUnit4 HelloWorld
    1、new project
    2、建立类
    3、建立 testcase

    四、放弃旧的断言,使用 hamcrest 断言
    1、assertThat
    2、使用 hamcrest 的匹配方法
    a) 更自然
    3、示例
    a) assertThat(n,allOf(greaterThan(1),lessThan(15)));
    assertThat(n,anyOf(greaterThan(16),lessThan(8)));
    assertThat(n,anything());
    assertThat(str,is("shawn"));
    assertThat(str,not("shawn"));

    b) assertThat(str,containsString("shawn"));
    assertThat(str,endWith("shawn"));
    assertThat(str,startWith("shawn"));
    assertThat(n,equalTo(nExpected));
    assertThat(str,equalToIgnoringCase("developerWorks"));
    assertThat(str,equalToIgnoringWhiteSpace("developerWorks"));

    c) assertThat(d,closeTo(3.0,0.3));
    assertThat(d,greaterThan(3.0));
    assertThat(d,lessThan(10.0));
    assertThat(d,greaterThanOrEqualTo(5.0));
    assertThat(d,lessThanOrEqualTo(16.0));

    d) assertThat(map,hasEntry("shawn","shawn"));
    assertThat(iterabel,hasItem("shawn"));
    assertThat(map,hasKey("shawn"));
    assertThat(map,hasValue("shawn"));

    五、Failure和Error
    1、Failure是指测试失败
    2、Error是指测试程序本身出错

    注意:有Error 就不会再去找Failure了。

    六、JUnit4 Annotation
    1、@Test:测试方法
    a) (expected=XXException.class)
    b) (timeout=xxx)
    2、@Ignore:被忽略的测试方法
    3、@Before:每一个测试方法之前运行
    4、@After:每一个测试方法之后运行
    5、@BeforeClass:所有测试开始之前运行
    6、@AfterClass:所有测试结束之后运行

    运行多个测试
    右键点击测试类:run as JUnit Test

    最后注意
    1、遵守约定,比如
    a) 类放在test包中;
    b) 类名用 XXXTest结尾;
    c) 方法用 testXXXMehtod 命名。

  • 相关阅读:
    走进Android系统
    最后的一像素。
    rem介绍
    软件安装相关问题。
    iscroll
    程序员常用词语发音
    一个程序员眼中的好UI
    myeclipse性能优化
    注入配置数据
    java IO
  • 原文地址:https://www.cnblogs.com/ShawnYang/p/6617392.html
Copyright © 2020-2023  润新知