软件测试第二次作业

一、什么是单元测试

面向对象程序主要是由一个个的类组成的,一个类或一个对象就是一个单元,而比类更小的单元是类的方法。如果类中的基本单元——如某些方法不能正常工作,在某些输入条件下会得出错误的执行结果,那么如何保证类/对象乃至整个应用软件或系统作为一个整体能正常工作呢?所以,简单说,单元测试的目的就是首先保证一个系统的基本组成单元、模块(如对象以及对象中的方法)能正常工作。


二、进行单元测试的意义

看上去像是增加了代码量,但是实际上却是减少了之后可能对代码修改的几率,尽可能的实现一次性编写就能成功的这个梦想。

 

三、工具

JUnit3/JUnit4

 

四、什么是JUnit

基于测试驱动开发的测试框架,是xUnit系列的一个子系列。说简单点就是一个用于java测试的工具箱,里面有很多方法和规范可以供我们直接使用。

 

五、JUnit3/JUnit4的比较

JUnit3测试类需要继承TestCase

JUnit4不需要继承任何类

JUnit3测试函数约定:public、void、test开头、无参数

JUnit4需要在测试函数前面加上@Test

 

六、JUnit单元测试基础要点

1.JUnit是一种测试代码的框架,测试的目的是:保证代码没错,而不是保证代码正确。

2.测试类一般不要和目标类放在一起,但编译成的class文件是放在一起的。

3.单元测试主要是来测试程序的结果和自己期望的值是否相等

 4.创建测试类的步骤:

1)在工程下面创建一个名为 test 的 Source Folder ,这个源程序文件夹和 src文件夹的阶级是相等的

2)测试类和目标类的包名要相同,这样的好处是测试类就不要import导入目标类的源码

3)测试类的命名规则:假设目标类的名字是 Calculator,则创建的测试类应命名为 CalculatorTest 或者 TestCalculator

 在junit 4 当中测试类无需继承于 TestCase类,测试方法的名字也无需以test开头,主要以注解的方式来定义,只要在测试方法加上@Test就可以进行测试,但有些原则还是要以junit3 的风格来设计,比如测试方法以test开头。

 

@Test :定义一个测试方法的标志

@Test(timeout=1000) :设置超时时间,如果测试时间超过了你定义的timeout,测试失败

@Test(expected) : 申明出会发生的异常,比如 @Test(expected = Exception.class)

@Before : 跟junit 3.8 上的setUp() 方法同样的效果,方法名最好和setUp()一样,但不强求,在每一个测试方法之前被执行

@After : 跟junit 3.8 上的tearDown() 方法同样的效果,方法名最好和tearDown()一样,但不强求,在每一个测试方法之后被执行

@BeforeClass : 被该注解申明的方法,功能是:在所有的测试方法之前执行,只执行一次

@AfterClass : 被该注解申明的方法,功能是:在所有的测试方法之后执行,只执行一次

@Ignore :让 测试方法 或 测试类 不被执行,让其失去测试的功能

 

七、总结

以前在软件公司实习,就接触过Junit,所以很多东西都能很快接受。给我最大的感受就是,Junit很强大,也很便捷。

posted on 2019-03-24 16:38  罗孟泽  阅读(152)  评论(0编辑  收藏  举报