Junit單元測試簡單小例子


一、編寫一個web程序

      本文根據工作實際項目,編寫一個web程序:實現防偽碼查詢頁面,輸入防偽碼,點擊查詢,查詢數據庫並作出判斷,將結果顯示在查詢頁面。

 

      1、需要添加的buildpath:ojdbc14.jar\classes12.jar

      2、編寫searchresult.jsp文件:(剛入門格式不規范) 

 1 <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
 2 <!--%
 3     String path = request.getContextPath();
 4     String basePath = request.getScheme() + "://"
 5             + request.getServerName() + ":" + request.getServerPort()
 6             + path + "/";
 7 %>-->
 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 9 <%@ page import="java.sql.*"%>
10 <%@ page import="testsample001.check"%>
11 <html>
12 <head>
13 <!--base href="<!--%=basePath%>">-->
14 <title>查詢結果</title>
15 <meta http-equiv="pragma" content="no-cache">
16 <meta http-equiv="cache-control" content="no-cache">
17 <meta http-equiv="expires" content="0">
18 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
19 <meta http-equiv="description" content="This is my page">
20 <!--<link rel="stylesheet" type="text/css" href="styles.css"> -->
21 </head>
22 <body>
23     <br>
24     <br>
25     <br>
26     <table>
27         <tr>
28             <td>
29                 <form action="/testsample001/testservlet" method="post">
30                     防偽碼
31                     <!--input name="fangweima" id="t1" type="text">-->
32                     <!--input name="searchbtn" type="button" value='查詢' onclick="check1()">-->
33                     <!--input name="result" id="t2" type="text"-->
34                     <input type="text" id="t1" name="t1" value="<%=session.getAttribute("t1")%>" /> 
35                     <!--input type="text" id="t2" name="t2" value="<%=session.getAttribute("t2")%>"/>-->
36                     <input type="submit" value="查詢"/>
37                     <br>
38                     查詢結果:<%=session.getAttribute("t2")%>;
39                 </form>
40             </td>
41         </tr>
42     </table>
43 </body>
44 </html>
View Code

      3、編寫check.java文件

 1 package testsample001;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.sql.Statement;
 8 
 9 public class check {
10     private Connection con;
11     private String user = "deejuser";
12     // private String user = "sys as sysdba";
13     private String password = "deejuser";
14     private String className = "oracle.jdbc.driver.OracleDriver";
15     // private String url="jdbc:oracle:oci@localhost:1158:orcl";這個url可能無效
16     private String url = "jdbc:oracle:thin:@zs-PC:1521:ytdf";
17 
18     public String ConnectOracle(String productno) {
19         try {
20             Class.forName(className);
21             // System.out.println("加載數據庫驅動成功!");
22             // System.out.println(productno);
23             String resultInfo = getCon(productno);
24             closed();
25             return resultInfo;
26         } catch (ClassNotFoundException e) {
27             // System.out.println("加載數據庫驅動失敗!");
28             e.printStackTrace();
29             return "加載數據庫驅動失敗!";
30         }
31     }
32 
33     /** 創建數據庫連接 */
34     // public Connection getCon(String productno) {
35     public String getCon(String productno) {
36         try {
37             con = DriverManager.getConnection(url, user, password);
38             // System.out.println("創建數據庫連接成功!");
39             Statement stmt = con
40                     .createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
41                             ResultSet.CONCUR_UPDATABLE);
42             String sql = "select * from product t where t.packagsn="
43                     + productno;
44             // System.out.print(sql);
45             ResultSet rs = stmt.executeQuery(sql);
46             if (rs.next())
47                 return "防偽碼存在!";
48             else
49                 return "防偽碼不存在!";
50         } catch (SQLException e) {
51             // System.out.print(con);
52             // System.out.println("創建數據庫連接失敗!");
53             con = null;
54             e.printStackTrace();
55             return "數據庫連接失敗!";
56         }
57         // return con;
58     }
59 
60     public void closed() {
61         try {
62             if (con != null) {
63                 con.close();
64             }
65         } catch (SQLException e) {
66             System.out.println("關閉con對象失敗!");
67             e.printStackTrace();
68         }
69     }
70 }
View Code

      4、編寫testservlet.java文件

 1 package testsample002;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.ServletException;
 6 import javax.servlet.annotation.WebServlet;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10 
11 import testsample001.check;
12 
13 /**
14  * Servlet implementation class testservlet
15  */
16 @WebServlet("/testservlet")
17 public class testservlet extends HttpServlet {
18     private static final long serialVersionUID = 1L;
19 
20     /**
21      * @see HttpServlet#HttpServlet()
22      */
23     public testservlet() {
24         super();
25         // TODO Auto-generated constructor stub
26     }
27 
28     /**
29      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
30      *      response)
31      */
32     protected void doGet(HttpServletRequest request,
33             HttpServletResponse response) throws ServletException, IOException {
34         // TODO Auto-generated method stub
35     }
36 
37     /**
38      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
39      *      response)
40      */
41     protected void doPost(HttpServletRequest request,
42             HttpServletResponse response) throws ServletException, IOException {
43         // TODO Auto-generated method stub
44         String value = request.getParameter("t1");// 獲取前台頁面傳遞過來的數據
45         // request.getSession(false).setAttribute("t1", value);// 將數據放到session中
46         check connor = new check();
47         String resultInfo = connor.ConnectOracle(value);
48         request.getSession(false).setAttribute("t2", resultInfo);// 將數據放到session中
49         request.getSession(false).setAttribute("t1", value);
50         response.sendRedirect("/testsample001/searchresult.jsp");// 跳轉回提交的頁面
51 
52     }
53 
54 }
View Code

      5、設置項目的起始頁面(tomcat服務配置-web.xml)

1     <welcome-file-list>
2         <welcome-file>index.html</welcome-file>
3         <welcome-file>index.htm</welcome-file>
4         <welcome-file>searchresult.jsp</welcome-file>
5     </welcome-file-list>
View Code

       6、實現結果:

 

        7、導出jar包(在要生成jar的項目上右擊,選擇菜單上的Export(導出)),導出oracleconnect.jar

            具體詳細步驟參考:http://blog.csdn.net/guanmjie/article/details/4437779

二、Junit測試查詢功能

        1、新建一個java項目:JunitTestSample001

        2、導入jar包:ojdbc14.jar\classes12.jar\oracleconnect.jar

        3、配置junit:詳細步驟參考:http://www.cnblogs.com/shuaijie/articles/5731459.html 

            選擇Libraries,點擊Add variable按鈕,輸入變量名JUNIT_LIB,路徑:E:\測試\測試工具\Juint\eclipse\eclipse-jee-kepler-SR2-win32\eclipse\plugins\org.junit_4.11.0.v201303080030,結果如下圖:

 

          4、新建junit test case:JunitTest001.java

 1 package JunitTestSample001;
 2 
 3 import junit.framework.TestCase;
 4 
 5 import org.junit.After;
 6 import org.junit.Before;
 7 import org.junit.Test;
 8 
 9 import testsample001.check;
10 
11 public class JunitTest001 extends TestCase {
12 
13     @Before
14     public void setUp() throws Exception {
15         super.setUp();
16     }
17 
18     @After
19     public void tearDown() throws Exception {
20         super.tearDown();
21     }
22 
23     @Test
24     public void testsearchresult() {
25         // fail("Not yet implemented");
26         check cooner = new check();
27         cooner.ConnectOracle("1");
28         assertEquals("查詢結果匹配情況", "防偽碼存在!", cooner.ConnectOracle("1"));
29 
30     }
31 }
View Code

          5、運行JunitTest001.java(Run As-Junit test),運行結果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM