软件测试2019:第二次作业
什么是JUnit
JUnit是一个Java语言的单元测试框架,junit是在xp编程和重构中被极力推荐使用的工具,因为在实现自动单元测试的情况下可以大大的提高开发的效率,Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何完成功能和完成什么样的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
什么是单元测试
单元测试是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
JUnit 的主要特性
1.可以使测试代码与产品代码分开,更有利于代码的打包发布和测试代码的管理。
2.提供了一个编写测试类的框架,使测试代码的编写更加方便。
3.易于集成到程序中的构建过程中。
4.源代码是公开的,可以进行二次开发。
5.具有很强的扩展性。
JUnit包括的类
(TestCase抽象类、TestSuite、TestResult、TestRunner4个重要的类)TestListenter、Test接口、Assert类。
JUnit3.x、JUnit4
JUnit3.x:
1.使用junit3.x版本进行单元测试时,测试类必须要继承于TestCase父类。
2.测试方法需要遵循的原则:public、void、无方法参数、方法名称必须以test开头。
3.不同的Test Case之间一定要保持完全的独立性,不能有任何的关联。
4.我们要掌握好测试方法的顺序,不能依赖于测试方法自己的执行顺序。
JUnit4:
1.使用junit4版本进行单元测试时,不用测试类继承TestCase父类,因为,junit4全面引入了Annotation执行我们编写的测试。
2.junit4版本,引用了注解的方式,进行单元测试。
3.junit4版本我们常用的注解:
a.@Before 注解:与junit3.x中的setUp()方法功能一样,在每个测试方法之前执行。
b.@After 注解:与junit3.x中的tearDown()方法功能一样,在每个测试方法之后执行。
c.@BeforeClass 注解:在所有方法执行之前执行。
d.@AfterClass 注解:在所有方法执行之后执行。
e.@Test(timeout = xxx) 注解:设置当前测试方法在一定时间内运行完,否则返回错误。
f.@Test(expected = Exception.class) 注解:设置被测试的方法是否有异常抛出。抛出异常类型为:Exception.class。
g.@Ignore 注解:注释掉一个测试方法或一个类,被注释的方法或类,不会被执行。
小结
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。