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

    什么是单元测试

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

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

    1. 不能一起运行!
    2. 大多数情况下需要人为的观察输出确定是否正确

    为什么要进行单元测试

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

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

    JUnit4 HelloWorld

    1. new project
    2. 建立类
    3. 建立testcase
    4. assertThat
    5. 使用hamcrest的匹配方法

    放弃旧的断言,使用hamcrest断言

    a) 更自然

    1. 示例

    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" ) );

    FailureError

    1. Failure是指测试失败
    2. Error是指测试程序本身出错
    3. @Test: 测试方法

    JUnit4 Annotation

    a) (expected=XXException.class)

    b) (timeout=xxx)

    1. @Ignore: 被忽略的测试方法
    2. @Before: 每一个测试方法之前运行
    3. @After: 每一个测试方法之后运行
    4. @BeforeClass: 所有测试开始之前运行
    5. @AfterClass: 所有测试结束之后运行
    6. 遵守约定,比如:

    运行多个测试

    注意

    a) 类放在test包中

    b) 类名用XXXTest结尾

    c) 方法用testMethod命名

    其他框架

    TestNG

  • 相关阅读:
    jq serialize 系列化 乱码 解决办法
    如何使用 TP中的公共函数 (定义在common/common.php中的函数)
    Sublime Text 使用技巧
    动态创建菜单
    jq中写PHP
    redis 管道
    微信强大的demo
    【Hibernate异常处理-1】java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;
    【Hibernate学习笔记-5.2】使用@Temporal修饰日期类型的属性
    【Hibernate学习笔记-5.1】使用@Transient修饰不想持久保存的属性
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/6378904.html
Copyright © 2011-2022 走看看