Junit单元测试

01 为什么要用单元测试?

  • 开发简单的只有一两个类的项目,当然可用一个 main 方法,来跑起来程序,然后看控制台结果判断对不对。但是一旦项目大了,有几十个包,上百个类,再用 main 方法,显然不合适了
    • 不合适一在于:不可能编写上百个main方法
    • 不合适二在于:不可能一个一个去运行测试

02 案例入门

  1. 创建一个java项目
    在这里插入图片描述
  2. 创建测试包,按照规范来,否则你就是不入流。
    在这里插入图片描述
  3. 编写测试方法,取名为“test测试的方法名”
    在这里插入图片描述
  4. 运行Junit Test,选中方法名,run as -> junit test
    在这里插入图片描述
    在这里插入图片描述

03 练习 API 中的方法

  • assertTrue()
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    从junit的API中可以看到很多方法,但是其中的assertThat是最重要的一个方法。
  • assertThat()
    在这里插入图片描述
    在学习 Maven 的时候,依赖引入了 junit 包,会自动给你导入 hamcrest 这个包,原因是 junit4 要依赖于这个 hamcrest 框架,这里就可以看出来,第二个参数。
    在这里插入图片描述
    可以发现有很多的实现类:
  1. assertThat( n, allOf( greaterThan(1), lessThan(15) ) );
    assertThat( n, anyOf( greaterThan(16), lessThan(8) ) );
    assertThat( n, anything() );
    assertThat( str, is( “rjxy” ) );
    assertThat( str, not( “rjxy” ) );

  2. assertThat( str, containsString( “rjxy” ) );
    assertThat( str, endsWith(“rjxy” ) );
    assertThat( str, startsWith( “rjxy” ) );
    assertThat( n, equalTo( nExpected ) );
    assertThat( str, equalToIgnoringCase( “rjxy” ) );
    assertThat( str, equalToIgnoringWhiteSpace( “rjxy” ) );

  3. 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) );

  4. assertThat( map, hasEntry( “rjxy”, “rjxy” ) );
    assertThat( iterable, hasItem ( “rjxy” ) );
    assertThat( map, hasKey ( “rjxy” ) );
    assertThat( map, hasValue ( “rjxy” ) );

04 annotion的使用

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

05 运行多个测试

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值