Nextday 參數化單元測試(測試用例)設計


一、首先簡單描述一下下載試題及配置試題的過程

  1. 配置環境:安裝Eclipse、JDK(1.7)、及考試插件 (net.mooctest....*.jar)等;

  2. 登錄系統:運行Eclipse: 【MoocTest】 --》【1. Login】--》輸入考試密碼(mooctest.net --> 我的任務 提供)。如下圖

  3. 下載試題:點擊上圖 菜單【2. Download】,下載試題(注意:一般選擇清空工作空間,如果試題不同名,也可以不清空)

  4. 微調環境:PS:這一步一般不是必須的(如果導航欄出現感嘆號,一般是因為環境配置不徹底),你可以微調考試環境,直至沒有感嘆號。一般問題出在JRE版本上,則可以選擇 build path, 對應的JRE 重新 Edit,選擇 1.7 版本的即可。

  5. 編寫測試用例: ctrl+N,選擇新建 Java --》Junit Test case --》設置路徑、文件名(即測試類名,一般命名規則:***Test.java, 這樣做的好處是易於記憶)。接下來在該文件中編寫測試用例。具體示例,如下面附錄1:代碼部分 .

  • 測試用例設計要考慮覆蓋准則,語句覆蓋、分支覆蓋等
  • 技巧,你可以多次提交,然后在結果分析部分查看還有哪些沒有被覆蓋到,進而補充測試用例。
  1. 運行測試:選擇 【MoocTest】 --》【3. Run】,運行結果如下圖所示:
  • PS:得分越高越好!
  1. 提交結果:選擇 【MoocTest】 --》【4. Submit】.

  2. 查看剩余時間:選擇 【MoocTest】 --》【5. Time】

附錄1: NextdayTest.java



import static org.junit.Assert.*;

import java.lang.reflect.Array;
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;


@RunWith(value = Parameterized.class)
public class NextdayTest {

	private Date expected;
	
	private Date value;
	
	@Parameters
	public static Collection
  
  
  
          
            getTestParameters() { // 下面依次設計有效等價類、無效等價類等 //有效等價類 Date d1 = new Date(5, 14, 2014); Date d2 = new Date(5, 13, 2014); //為負日期 // Date d3 = new Date(5, 0, 2014); // Date d4 = new Date(5, -1, 2014); // //為零日期 // Date d5 = new Date(5, 1, 2014); // Date d6 = new Date(5, 0, 2014); //31號 Date d7 = new Date(8, 31, 2015); Date d8 = new Date(8, 30, 2015); Date d9 = new Date(7, 31, 2014); Date d10 = new Date(7, 30, 2014); Date d11 = new Date(7, 1, 2013); Date d12 = new Date(6, 30, 2013); //閏年 Date d13 = new Date(3, 1, 2004); Date d14 = new Date(2, 29, 2004); Date d15 = new Date(2, 29, 2004); Date d16 = new Date(2, 28, 2004); //400年是閏年 Date d17 = new Date(3, 1, 2000); Date d18 = new Date(2, 29, 2000); Date d19 = new Date(3, 1, 2013); Date d20 = new Date(2, 28, 2013); //被4整除,不被100整除 Date d23 = new Date(3, 1, 2100); Date d24 = new Date(2, 28, 2100); //到第二年 Date d21 = new Date(1, 1, 2014); Date d22 = new Date(12, 31, 2013); //下一個月 Date d25 = new Date(1, 31, 2013); Date d26 = new Date(1, 30, 2013); Date d27 = new Date(2, 1, 2013); Date d28 = new Date(1, 31, 2013); Date d29 = new Date(4, 1, 2014); Date d30 = new Date(3, 31, 2014); Date d31 = new Date(5, 1, 2014); Date d32 = new Date(4, 30, 2014); Date d33 = new Date(6, 1, 2014); Date d34 = new Date(5, 31, 2014); Date d35 = new Date(7, 1, 2014); Date d36 = new Date(6, 30, 2014); Object[][] date = new Object[][] { {d1, d2}, // {d3, d4}, // {d5, d6}, {d7, d8}, {d9, d10}, {d11, d12}, {d13, d14}, {d15, d16}, {d17, d18}, {d19, d20}, {d21, d22}, {d23, d24}, {d25, d26}, {d27, d28}, {d29, d30}, {d31, d32}, {d33, d34}, // {d35, d36} }; return Arrays.asList(date); } public NextdayTest(Date expected, Date value) { super(); this.expected = expected; this.value = value; } @Test public void testNextDay() { assertEquals(expected, Nextday.nextDay(value)); } } 
          


免責聲明!

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



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