zoukankan      html  css  js  c++  java
  • JUnit单元测试入门

    什么是单元测试

    写了个类,要给别人用,会不会有bug?怎么办?测试一下。

    用main方法测试好不好?不好!

    不能一起运行!
    大多数情况下需要人为的观察输出确定是否正确
    为什么要进行单元测试

    重用测试,应付将来的实现的变化。

    提高士气,明确知道我的东西是没问题的。

    JUnit4 HelloWorld

    需要导入JUnit和hamcrest包

    new project
    建立类
    建立testcase
    assertThat
    使用hamcrest的匹配方法
    放弃旧的断言,使用hamcrest断言

    a)

    assertThat( n, allOf( greaterThan(1), lessThan(15) ) );
    assertThat( n, anyOf( greaterThan(16), lessThan(8) ) );
    assertThat( n, anything() );
    assertThat( str, is( "bjsxt" ) );
    assertThat( str, not( "bjxxt" ) );
    b)

    assertThat( str, containsString( "bjsxt" ) );
    assertThat( str, endsWith("bjsxt" ) );
    assertThat( str, startsWith( "bjsxt" ) );
    assertThat( n, equalTo( nExpected ) );
    assertThat( str, equalToIgnoringCase( "bjsxt" ) );
    assertThat( str, equalToIgnoringWhiteSpace( "bjsxt" ) );
    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( "bjsxt", "bjsxt" ) );
    assertThat( iterable, hasItem ( "bjsxt" ) );
    assertThat( map, hasKey ( "bjsxt" ) );
    assertThat( map, hasValue ( "bjsxt" ) );

    Failure和Error

    Failure是指测试失败
    Error是指测试程序本身出错
    JUnit4 Annotation

    @Test: 测试方法
    a) (expected=XXException.class)

    b) (timeout=xxx)

    2.@Ignore: 被忽略的测试方法

    3.@Before: 每一个测试方法之前运行

    4.@After: 每一个测试方法之后运行

    5.@BeforeClass: 所有测试开始之前运行

    6.@AfterClass: 所有测试结束之后运行

    运行多个测试

    注意

    遵守约定,比如:
    a) 类放在test包中

    b) 类名用XXXTest结尾

    c) 方法用testMethod命名

    其他框架

    TestNG

  • 相关阅读:
    C#操作OFFICE一(EXCEL)
    json的使用二(转)
    xpath简介(转载)
    使用LogParser分析IIS网站日志
    WCF Data Contract KnownTypeAttribute转载
    ExtJs中同一个URL构造多个Ext.data.JsonStore 转载
    转载Ext.form.formPanel 与服务器交互 初始化表单
    oracle表数据误删恢复
    JavaScript基础之Array函数
    Json格式类的转换相关代码转载
  • 原文地址:https://www.cnblogs.com/wwwcnblogscom/p/7883762.html
Copyright © 2011-2022 走看看