当前位置: 代码迷 >> Eclipse >> 用Eclipse进展Junit测试 [转]
  详细解决方案

用Eclipse进展Junit测试 [转]

热度:64   发布时间:2016-04-23 12:33:31.0
用Eclipse进行Junit测试 [转]

JUnit的基本知识

(1)??? JUnit是什么?

JUnit是基于面向对象构建的java单元测试框架。用于组织测试用例。以往的测试做法——写一个含有main方法的类相比,JUnit更易于对测试用例进行管理

(2)??? 如何安装JUnit

myEclipse中提供了Junit插件,所以可以利用向导直接倒入

如下所示:右键项目——〉properities——〉Add library——〉选择Junit

?

选择加入Junit的版本号,点击finish

?

(3)??? 如何利用JUnit进行单元测试?(难点是一些测试用例的编写?测试用例的边界如何确定?)

- 创建测试类,继承junit.framework.TestCase,利用eclipse可以很方便的开发JUnit测试用例(见1

- 书写测试方法,提供类似于如下函数签名的测试方法(必须以 test开头):

public void testXXXXX();(测试类的框架见2

- 编译,书写完test case后,编译所写的test case

- 运行,启动junit test runner,来运行这个test caseMyEclipse提供了运行Junit的图形化窗口 见3)。

1利用eclipse开发JUnit测试用例:

右键需要测试的类——〉new——〉Junit Test case(位于java\Junit下)

注意:package指明测试类所在的包,便于管理

??? Name:测试类的名字

??? Superclass:必须继承Junit.framework.TestCase

??? Class undertest:被测试的类的名字

警告信息:如果在工程的build path中没有JUnit需要的包Junit.jar则需要点击Click here Junit.jar导入。

2测试类的框架

import junit.frmework.TestCase;

public class TestSample extends TestCaset{

//setUptearDown方法可以没有

protected void setUp(){

??????? //初始化……

}

potected void tearDown(){

//撤销初始化……

}

//注意需要测试方法必须为public,返回值为void,名字必须以test开头

public void testMethod1(){

assertTrue( true);

}

?

}

3运行测试用例:右键测试类——〉Run as Junit Test,打开Junit视图

?

其中的状态栏显示测试用例通过和未通过的比例,绿色表示通过,红色表示未通过,点击下边的具体一个未通过的测试方法,还可以看到未通过的原因信息。

(4)??? JUnit的执行机制?

?

Junit.textui.TextRunner通过TestSuite.TestSuite来生成测试例,通过TestSuite.run(TestResult)来实现测试的真正执行,执行过程中通过注册ListenerTestResult,然后把TestResult的实例result以参数形式传递给测试的真正执行函数TestSuite.run(TestResult)来实现测试结果的收集。

(5)?? JUnit各种断言:

assertEquals([String message], expected, actual)——这是使用得最多的断言形式。expected-是你的期望值(通常要硬编码),actual-被测代码实际产生的值,message-可选的消息,如果提供的话,将会在发生错误的时候报告这个消息。

assertNull([String message],java.lang.Object object)——验证一个给定的对象是否为Null(或者为非Null),如果答案为否,则将会失败。message参数是可选的。

assertSame( [String message], expected,actual)——验证expected参数和actual参数所引用的是否为同一对象,如果不是的话,将会失败。Message参数是可选的。

assertTrue( [String message],boolean condition)——验证给定的二元条件是否为真,如果为假的话,将会失败。Message参数是可选的。

assertFalse( [String message],boolean condition)——验证给定的二元条件是否为假,如果不为假的话,将会失败。Message参数是可选的

fail( String message )——使测试立即失败,其中message参数使可选的。这种断言通常被用于标记某个不应该到达的分支(例如,在一个预期发生的异常之后)

  相关解决方案