单元测试(JUnit4)培训

单元测试(JUnit4

金庆华

20103

培训目标:

了解什么是单元测试,如何做单元测试,TDD

掌握JUnit 4及其注解的使用

掌握JUnit 4 Assert验证

了解Hamcrest断言的使用

单元测试规范及要求宣贯

督促将单元测试使用于项目

1.什么是单元测试?

单元测试:Unit Test。测试不用说了,什么是单元呢?

单元测试是针对软件的最小模块进行正确性检验的测试工作。所谓最小模块,在OOP的范畴内,通常是指对象的方法。

2.为什么要做单元测试

讨论

3.谁来做单元测试?

单元测试是程序员的一项基本职责和基本技能,直接影响到程序员的工作效率和软件的质量,也直接影响到团队的合作。

4.我们平时是怎么做的?

1main方法?

2、写个“测试类”,里面用main方法

优点:快速直接

缺点:

没有直观的测试结果,需要程序员自己整理测试结果并生成测试报告

无法重用,没有留下可供重用的工具或代码

不能运行多个main方法

无法进行自动化的回归测试

增加了类的体积,代码不清晰

5.我们以后要怎么做?

健全单元测试

6.Java平台的单元测试框架

ü JUnit

ü TestNG

ü

7.如何选型?

我们选择JUnit,原因如下:

老牌资深

用户群大

JUnit4注解非常简单

Eclipse内置,方便

8.JUnit

8.1.JUnit名言

Keep the bar green to keep the code clean.

8.2.What is the green bar?

8.3.一个最简单的测试

按定义,要有个类,要有个方法,测试它,使用main方法和JUnit演示。

8.4.JUnit3JUnit4比较

JUnit3基于继承

JUnit4基本Annotation

8.5.Failure Error

Failure:测试未通过

Error:程序错误

8.6.JUnit Annotation

1. @Test: 测试方法

a) (expected=XXException.class)

b) (timeout=xxx)

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

指出用@Ignore和不加@Ignore的方法的区别

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

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

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

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

其它注解

7. @RunWith

8. @Suite.SuiteClasses:测试套件指定测试哪些类

----------易与难的分隔线----------

9. @Parameters

10. @Rule

11.

8.7.Assert

断言,判断

Assert.fail

Assert.Equals

Assert.assertThat //import static

hamcrest断言(推荐)

8.8.如何一起运行所有的JUnit

Eclipse

Test Suite(Annotation),部分或全部运行

9.编写规范(强制)

目录约定:new source folder(test)

包约定:same package as the class to be test

测试类名约定:ClassNameTest()

测试方法约定:testMethod()

要求:非启动类(Web项目中基本没有)中不允许有main方法

(检查所有项目,有时间的改)

测试套件名约定:XxxTestSuite

测试套件目约定:TestSuite放在test根目录

10.问题解决了吗?

观察(有些必须观察),green bar, Ant + JUnit生成测试报告

可重用,留下可供重用的代码

多个方法运行多个或全部的单元测试

可回归测试

测试代码与生产代码分离,体积减少,代码更清晰

11.什么是TDD

Test Driven Development

http://www.infoq.com/cn/news/2009/05/recommended-tdd-tutorials

补:Eclipse自动生成注释配置

Questions?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值