`

关于junit实现过程详细介绍【转自www.bitsCN.com】

阅读更多
测试分类:白箱测试、黑箱测试、单元测试、集成测试、功能测试……。白箱测试是指在知道被测试的软件如何(How)完成功能和完成什么样(What)的功能的条件下所作的测试,一般是由开发人员完成,单元测试是一种白箱测试,因为开发人员最了解自己编写的软件。JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架,回归测试就是你不断地对所编写的代码进行测试(如单元测试):编写一些,测试一些,调试一些,然后循环这一过程,你会不断地重复先前的测试,哪怕你正编写其他的类。

网管bitscn_com


  第一步: 网管u家bitscn.net

  去Junit主页(http://www.junit.org)下载最新版本3.8.1程序包junit-3.8.1.zip.解开压缩包到c:\junit(可自定义)。

网管网www_bitscn_com

  第二步:

网管有家bitscn.net

  假如目录是c:\junit那么,在classpath中加入:“c:\junit\;c:\junit\junit.jar:”定义类路径。在命令提示符下运行:java junit.swingui.TestRunner,如果一切正确,就会打开应用程序。在下拉菜单中寻找程序自带的例子,比如:junit.samples.AllTests,点击“Run”观察结果。

中国网管联盟bitsCN.com

  第三步:

中国网管联盟bitsCN.com


  实现自己的TEST计划,目前有一个叫MyBean的数据库操作类需要测试,如下:
package com.junit;

import java.io.*;
import java.sql.*;

public class MyBean {
Statement stmt=null;
ResultSet rs=null;
Connection conn=null;
String result=null;
public String con(){ //初始化数据库

try{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url ="jdbc:oracle:thin:@130.120.2.250:1521:yjzh10g?user=yjzh&password=yjzh";
conn= DriverManager.getConnection(url, "yjzh", "yjzh");
return "Connection Success!";
}catch(Exception e){
System.out.println(e);
return "Connection Error!";
}
    }

public String gogo(String lmdm){ //查询数据库
try{
stmt=conn.createStatement();
String sql="select * from TB_LM where N_LMDM='"+lmdm+"'";
rs=stmt.executeQuery(sql); //执行查询
while (rs.next()){
result=rs.getString("N_SJID");
}
}catch(Exception e){
result=e.toString();
}finally { //关闭JDBC资源
if(rs != null) {
try {
rs.close();
} catch(SQLException ex) {
ex.printStackTrace();
}if(conn != null) {
try { conn.close();
} catch(SQLException ex) {
ex.printStackTrace();
}
}
}
return result;
}
}
}

  接着,创建一个测试类:TestMyBean,如下:

package com.junit;

import com.junit.MyBean;
import junit.framework.*;

public class TestMyBean extends TestCase {
private MyBean aName; //构造被测类的对象
public TestMyBean(String name) {
super(name);
}
protected void setUp() { //进行初始化的任务
aName= new MyBean();
}
public static Test suite() { //进行测试
return new TestSuite(TestMyBean.class);
}
public void testCon() { //对预期的值和con方法比较
Assert.assertTrue(!aName.equals(null)); //断言
Assert.assertEquals("Connection Success!",aName.con());
}
public void testGogo() { //对预期的值和gogo方法比较
aName.con();
Assert.assertTrue(!aName.equals(null)); //断言
Assert.assertEquals("0",aName.gogo("1"));
}
}

解释如下:

  首先要引入待测试的类import junit.samples.MyBean;接着引入Junit框架import junit.framework.*;。与一个Servlet类似,需要继承父类TestCase;在setUp()方法中实例化一个MyBean,供后面的测试方法使用;suite()是一个很特殊的静态方法,它会使用反射动态的创建一个包含所有的testXxxx方法的测试套件,确定有多少个测试可以执行;testCon()方法对MyBean的Con方法进行测试,并断言(Assert)结果是"Connection Success!",并在Assert.assertEquals()方法中验证;testGogo()方法和testCon()方法类似。 网管联盟bitsCN@com

  第四步:

网管论坛bbs_bitsCN_com


  把TestMyBean、MyBean类编译成*.class文件,在Junit的控制台上选择刚才定义的TestMyBean类,并运行。如果一切正确,就会显示绿条,证明测试正确。如果显示红色,在Results中会有相应显示,根据提示检查MyBean类中的错误。一般的,只要断言符合MyBean类的规范,TestMyBean类几乎不可能出错。   一些扩展:

  对于WEB应用程序,我们可以把Junit引入,只需适当配置环境。另外,可以把众多的测试类集成到一起,形成总测试类,并且只需要实现suite()方法,例如:

public static Test suite ( ) {TestSuite suite= new TestSuite("All JUnit Tests");suite.addTest(VectorTest.suite());suite.addTest(TestMyBean.suite());return suite;}
分享到:
评论

相关推荐

    junit的jar包

    junit.extensions.ActiveTestSuite.class junit.extensions.RepeatedTest.class junit.extensions.TestDecorator.class junit.extensions.TestSetup.class junit.extensions.package-info.class junit.framework....

    junit实现过程.doc

    2. **创建测试类**:接着,创建一个继承自 `junit.framework.TestCase` 的测试类 `TestMyBean`,用于编写测试方法。 ```java package junit.samples; import junit.samples.MyBean; import junit.framework.*;...

    com.springsource.org.junit-4.7.0.jar

    com.springsource.org.junit-4.7.0.jar 需要的下载啊

    junit5.rar包含JUnit Platform + JUnit Jupiter + JUnit Vintage依赖jar包

    JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage,包含依赖包:junit-jupiter-5.5.1.jar,junit-jupiter-engine-5.5.1.jar,junit-jupiter-params-5.5.1.jar,junit-platform-launcher-1.5.1.jar,junit-...

    junit-jupiter-5.5.1.rar

    JUnit5相关的 JUnit Jupiter.jar依赖包,主要包含: junit-jupiter-5.5.1.jar,junit-jupiter-api-5.5.1.jar,junit-jupiter-engine-5.5.1.jar,junit-jupiter-params-5.5.1.jar,junit-jupiter-api-5.4.2.jar,...

    junit-jupiter-params-5.7.2-API文档-中文版.zip

    Maven坐标:org.junit.jupiter:junit-jupiter-params:5.7.2; 标签:junit、jupiter、params、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...

    junit5.jar

    在进行实际测试时,可以创建一个继承自`org.junit.jupiter.api.TestInstance`的测试类,利用JUnit Jupiter提供的各种注解编写测试用例。例如: ```java import org.junit.jupiter.api.DisplayName; import org....

    junit-jupiter-api-5.7.0.jar

    junit-jupiter-api-5.7.0.jar

    junit-platform-launcher-1.7.0.jar

    junit-platform-launcher-1.7.0.jarjunit-platform-launcher-1.7.0.jar

    JUnit使用指南及作业规范.rar

    Eclipse Eclipse 中使用 junit junitjunit (有了开发工具对 (有了开发工具对 junit的支持后) .... ... 8 JUNIT 4.X4.X4.X使用 .... .... .... ......... 12 下载与安装 下载与安装 .... .... .... ...... 12 ...

    junit-platform-launcher-1.6.2.jar

    junit-platform-launcher-1.6.2.jarjunit-platform-launcher-1.6.2.jarjunit-platform-launcher-1.6.2.jar

    junit-4.12.jar下载

    同样,`junit-4.11-sources.jar`和`junit-4.7-src.jar`包含了JUnit源代码,这有助于开发者深入理解内部实现,甚至可以自定义或扩展JUnit的功能。 除了基本的断言和测试方法,JUnit 4.12还包括了诸如注解驱动的测试...

    junit-4.11.jar

    JUnit是一个广泛使用的Java编程语言的单元测试框架,它的4.11版本是其发展过程中的一个重要里程碑。这个版本在前一版本的基础上进行了一系列的改进和增强,使得测试工作更加高效且易用。当我们下载并解压"junit-4.11...

    junit-jupiter-api-5.8.2-API文档-中文版.zip

    Maven坐标:org.junit.jupiter:junit-jupiter-api:5.8.2; 标签:junit、jupiter、api、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...

    junit-platform-commons-1.7.0.jar

    junit-platform-commons-1.7.0.jar

    junit-platform-engine-1.6.3.jar

    junit-platform-engine-1.6.3.jarjunit-platform-engine-1.6.3.jar

    junit-jupiter-api-5.7.1.jar

    junit-jupiter-api-5.7.1.jar

    junit5-r5.5.2.zip

    - **模拟对象与依赖注入**:介绍如何使用Mockito等工具与JUnit 5结合,实现模拟对象的测试。 总之,JUnit 5的r5.5.2版本在保持易用性的同时,带来了更多的灵活性和可扩展性。无论是新手还是经验丰富的开发者,都...

    junit4.1.jar

    junit4的jar包,使用annotation进行junit测试!

    浪曦][原创]Junit.3.8.详解续二.rar

    【标题】:“浪曦][原创]Junit.3.8.详解续二.rar”这个压缩包文件,显然是关于Junit 3.8版本的一个详细教程的第二部分。Junit是Java编程语言中广泛使用的单元测试框架,对于软件开发,尤其是进行TDD(测试驱动开发)...

Global site tag (gtag.js) - Google Analytics