单元测试

1.创建一个类:写两个方法;一个用于计算数字相加;一个用于计算数字相除;

2.创建一个JUnit Test Case类:就是一个junit测试类,用于执行,创建过程如下:

单元测试(白盒测试)

                                                         (图1:创建Junit Test Case类)

单元测试(白盒测试)

                                           (图2:红色方框中选择创建的类才可以点击next)

单元测试(白盒测试)

         (图3:点击next到此界面,选择要测试的方法如图中T类下的add和device方法)

单元测试(白盒测试)

                  (图4:finish之后JUnit Test Case类创建成功;可以删除fail()写自己要测试的内容如图5)

单元测试(白盒测试)

         (图5:调用T类中的加法除法的方法,做测试,测试方法右键--run as--JUnit Test,单独测试一个方法可双击@test在右键--run as--JUnit Test;assertEquals()是判断z值与6是否相等;接下来会写另外一种判断的方法)

单元测试(白盒测试)

                                (图6:运行结果)

3.使用hamcrest包:使用的方法更自然:如:assertEquals(6,z)可以被assertThat(z,is(6));is就是hamrest的Matchs类中的方法,当然还有其他的很多方法;(下一篇详细使用其他的函数方法)

(1)添加两个包,看了其他的教程是让加hamcrest-core-1.2和hamcrest-library-1.2jar包,但是在官网上下的其他版本的都没有matchs这个类(1.2版本没有)所以直接下载了hamcrest-all-1.2.0-0000.jar;里面有所有包的资源;所以也不用下载两个jar包了,直接下载一个全部的包;

单元测试(白盒测试)

加包过程:项目右键--build path--add external archives--选择jar包位置打开--apply--ok

单元测试(白盒测试)

(2)然而,运行是会报错的,因为hamcrest是不能和系统自带的junit包结合使用的,报错如下图:解决方法是在下载一个junit包,移除系统自带的junit包

单元测试(白盒测试)

单元测试(白盒测试)

                   (此图为系统自带junit包:右键--build path--remove即可;然后添加下载的junit包(我是胡乱的搜一下下载了一个,名字叫:junit-4.13-beta-1.jar;下载过程如下图))

单元测试(白盒测试)

单元测试(白盒测试)

单元测试(白盒测试)

(3)然后就可以使用matchs中的is方法了,注意:需要手动引入import static org.hamcrest.Matchers.*;

单元测试(白盒测试)

4.总结:(1)单元测试比传统的main方法测试好处:方法不用写到一个main方法中,不混乱,可以一起执行;第二个不用仔细观察来辨别每个函数的功能实现,哪一个函数出错了,哪一个函数没有输出之类的问题层出不穷,单元测试就是来解决这些问题的;  (2)assertThat函数方法是junit包中的;is()函数方法是hamcrest包中的(具体应该是hamcrest-core包中的);(3)单元测试属于白盒测试;(4)assert:翻译,断言。其实就是判断的意思;(5)hamcrest属于新的断言:(6)failure指测试失败;error指程序本身出错(error和failure是有优先级的,出现error就不会有failure)

 

相关文章:

  • 2021-08-31
  • 2021-12-02
  • 2021-12-03
  • 2021-12-03
  • 2021-12-30
猜你喜欢
  • 2022-12-23
  • 2021-06-02
  • 2022-12-23
  • 2021-12-31
  • 2021-10-15
相关资源
相似解决方案