junit4

eclipse可以通过build path引入junit包

  • 工程中引入junit
  • 随便写一个类(计算加减乘除)
image.png
  • 使用junit对类进行单元测试
    右键需要单元测试的java文件,new,选择junit test case
junit test case
image.png

下一步,选择要测试的方法

next

完成,系统会自动生成一个junit测试文件

test

看一下该类引用的内容,以后可以自己创建测试类

import

里面包含空的测试方法,需要自己去写用例

用例

执行run as的junit Test
会出现测试结果

junit result

控制台输出

console

测试了四个方法,setup触发了四次。
结果只有第一个方法通过。理论上每个方法若是单独测试第二个方法也会通过。应该是实例只有一个,而result一直有缓存值的问题。
测试方法之间对待测试类的改变并不是独立的隔离状态
setUp在调用每个方法之前都会触发一次,应该是在测试方法前对类进行一些统一初始化用。
修改测试类,将待测试类实例化放置setup方法内试试。

image.png

失败

image.png

猜测:难道只能保持一个活跃实例,先在待测试类增加一个重置变量result的方法,使得在测试方法前初始统一。

image.png

然后setup方法调用

image.png

结果测试正确

image.png

multiply是个未完成方法怎么办?
不对方法进行测试,或者使用@ignore标签

junit 标签
image.png

结果

image.png
  • 使用
    首先测试类要引入org.junit.的内容,而使用到的assertEquals是 static org.junit.Assert.的内容。这两个内容要引入。
    @Before标签就是在每个测试方法运行前,都会调用的方法
    @Test标签就是需要测试的方法,可传入timeout=10000参数设置方法执行限制时间,如果测试异常触发情况,可传入expected = ArithmeticException. class ->触发异常类,测试是否触发异常
    使用assertEquals传入理想结果和实际结果对该测试方法的运行目的进行判断是否正确
    @After标签 在执行完测试方法后会触发的方法
    @BeforeClass 在加载测试类时触发方法,static
    @AfterClass 在结束测试类时触发方法,static

类标签@Runwith为测试类指定特殊的Runner,一个类只能用一个runner
例如:
同一个方法,测试不同的边界参数,可使用@RunWith(Parameterized. class )

parameterized

如果有多个测试类,想一起执行测试,可以使用@RunWith(Suite. class)
且一起使用标签@SuiteClasses进行管理本次执行测试的类有哪些

suite

测试结果

image.png

与mockito配合使用的文章

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • 1.初级篇 1.1 单元测试 我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我...
    流川枫AI阅读 2,498评论 0 8
  • 注意事项: 测试方法上必须使用@Test修饰 测试方法必须使用public void进行修饰,不能带任何参数 新建...
    鲁克巴克诗阅读 1,798评论 0 3
  • 一、简介 之前,简单的测试我都是使用print打印控制面板来实现查看方法是否实现了需要的功能,现在,使用ju...
    蠟筆小噺没有烦恼阅读 641评论 0 1
  • 1、什么是Junit4 JUnit4是一个易学易用的Java单元测试框架,一般我们在写完一段代码或一个方的时候,都...
    音为爱阅读 5,595评论 1 8