亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
基于JUnit使用Feed4JUnit實現數據與代碼分離
作者:網絡轉載 發布時間:[ 2013/4/12 13:40:26 ] 推薦標簽:

  經常,在應用程序的業務邏輯中存在大量的這樣的接口:他們接受不同的輸入,然后進行或驗證,或處理,進而完成相同的流程。比如網站的登錄入口,用戶名和密碼都有長度的限制,同時也具有是否允許特殊字符的限制等,所以在我們進行其單元測試的過程中,根據不同長度的用戶名和密碼,以及不同的字符組合,只需要提供相同的測試代碼結構,能完成測試,不同的僅僅測試數據與期望值,但是因為每一個測試方法中的輸入參數不同,我們必須為每一個輸入組編寫單獨的測試用例,從而產生大量冗余代碼,十分不便于維護。

  基于以上場景,JUnit 4 提供了參數化的特性,從而能夠實現不同數據輸入對相同測試代碼的測試,如清單 1 所示:

  清單 1. JUnit 4 參數化測試代碼示例

    package sample.test;

import static org.junit.Assert.assertEquals;

import java.util.Arrays;
import java.util.Collection;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

import sample.code.UserAccess;

/*
 * JUnit - Parameter test sample
 */
@RunWith(Parameterized.class)
public class JunitSample {

 private String user;
 private String pw;
 private boolean expected;

 @Parameters
 public static Collection dataGenerater() {
  return Arrays.asList(new Object[][] {
    { "user01", "123456", true },
    { "helloworld", "123456", false },
    { "david", "re*ads", false },
    { "goodone", "onegood", true } });
 }

 public JunitSample(String user, String pw, boolean expected) {
  this.user = user;
  this.pw = pw;
  this.expected = expected;
 }

 @Test
 public void testAccessCheck() {
  assertEquals(expected, UserAccess.accessCheck(user, pw));
 }
}

  通過以上示例代碼可以看出,JUnit 4 通過使用一個標記 @Parameters 注釋的返回類型為 Collection 的靜態方法產生數據,測試數據通過變量傳遞給測試方法,從而完成多數據輸入的測試。但是隨著業務的需要,測試人員需要經常增加測試數據與修改現有測試數據,JUnit 4 提供的硬編碼方式已經愈顯笨重和不便,數據與代碼分離顯得尤為重要。

  幸好,本文所述的 Feed4JUnit 良好的解決了數據與代碼分離的問題,Feed4JUnit 是 JUnit 測試框架的擴展,它通過操作來自于文件以及不同的數據源的測試數據,使您的單元測試變得更容易編寫與維護。

  本文將通過示例向您展示 Feed4JUnit 的安裝以及測試代碼與數據分離的實現,請注意本文的示例代碼全部基于針對如下一個十分簡單用戶登錄檢驗的類,并且假定您正在使用 Eclipse 作為您的 IDE,請看清單 2 類代碼:

  清單 2. 實例類

    package sample.code;

public class UserAccess {
 // simple validation for user name and password
 public static boolean accessCheck(String userName, String password) {
  if (userName.length() <= 4 || userName.length() > 8)
   return false;
  if (password.length() <= 4 || password.length() > 8)
   return false;
  if (userName.contains("@"))
   return false;
  if (password.contains("*"))
   return false;
  return true;
 }
}

  Feed4JUnit 的下載及安裝

  1. Feed4JUnit 是開源的測試組件,您可以從如下鏈接下載新版本:

  http://sourceforge.net/projects/feed4junit/files/

上一頁1234下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 波多野结衣成人 | 成人欧美一区二区三区视频不卡 | 无遮羞肉体动漫影院免费版 | 国精产品一区一区三区 | 国产在线日韩在线 | 欧美日韩国产网站 | 一区二区三区精品国产欧美 | 中国一级片免费 | 免费观看色 | 亚洲一区二区在线成人 | 曰批免费视频播放免费观看网站 | 久操短视频 | 成人av.com | 日本爽爽爽爽爽爽在线观看免 | 日本欧美一区二区三区视频麻豆 | 中国欧美日韩一区二区三区 | 欧美日韩免费在线 | 国产精品手机视频 | 高清国产精品久久 | 日本亚洲a| 一个人在线看的www视频 | 小明www永久免费播放平台 | 被黄漫网站视频在线观看 | 欧美日韩在线高清 | 国产精品日本欧美一区二区 | 91日韩欧美 | 麻豆国产精品高中生视频 | 特级夫妻大片免费在线播放 | 51成人| 日本中文字幕一区二区 | 天天干天天干天天干天天 | 国内精品久久久久久久aa护士 | 视频在线观看网站免费 | 一级女人18片毛片免费视频 | 成人看视频 | 亚洲欧美在线视频免费 | 欧美日韩亚洲一区 | 小明日韩在线看看永久区域 | 天天搞天天操 | 亚洲毛片网| 大又黄又粗又爽妇女毛片 |