日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

junit测试报告生成_这是东西:jUnit:动态测试生成

發布時間:2023/12/3 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 junit测试报告生成_这是东西:jUnit:动态测试生成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

junit測試報告生成

當您需要在許多不同的輸入值或配置上運行同一組測試時,動態測試生成很有用。 可以使用參數化測試或使用理論來實現。

當您有大量數據用作參數并想對所有組合進行測試時,這些理論非常有用。 您得到的控制較少,但不必自己編寫合并和迭代的代碼。 關于理論如何工作的基礎知識在Java代碼極客 (最初出現在Java出現日歷 )上進行了解釋,因此,本文主要關注參數化測試。

當您需要對輸入值進行良好控制時,參數化測試會更好,例如,包含用作輸入的文件的目錄或有意義的參數組合列表。

參數化測試

參數化測試是一個測試用例,能夠接受參數以及您希望其運行的所有參數組合的列表。 JUnit遍歷參數列表,使用每個參數初始化測試用例,然后運行其所有測試方法。

然后,GUI和Maven運行程序都將每個參數化的測試運行解釋為單獨的測試。 如果其中一些失敗,則立即清楚哪些失敗了,有多少失敗了。

示例用例

Less4j對于css編譯器來說較少,因此其每個測試都由一個較少輸入的文件和一個預期CSS文件定義。 編譯器在輸入文件上運行,并將其輸出與預期CSS進行比較。 如果它們匹配,則測試通過。

所有.less文件都存儲在目錄中。 參數化的測試用例讀取該目錄,并為每個文件創建一個jUnit測試。 因此,我們可以通過創建新的.less和.css來添加新測試,通過“全部運行”按鈕運行測試,并在所有報告中查看新測試。

如何使用它

參數化的測試用例必須具有以下內容:

  • @RunWith(Parameterized.class)類注釋,
  • 接受測試用例參數的構造函數,
  • 帶有@Parameters注釋的靜態方法以生成參數,
  • 在構造函數中提供的參數上運行的測試方法。

建設者

參數化的構造函數必須至少具有一個參數。 例如,編譯器測試用例可以將較少的輸入作為第一個參數,而將預期的已編譯css作為第二個參數。 第三個參數name將被忽略,稍后將進行解釋:

@RunWith(Parameterized.class) public class ParametrizedTest {public ParametrizedTest(String less, String expectedCss, String name) {this.less = less;this.expectedCss = expectedCss;}}

參量

生成參數的靜態方法必須返回Iterable接口的實現。 迭代器返回包含參數集的數組。 每個數組用于創建一個測試用例實例,其中的對象用作構造函數參數。

例如,以下方法返回兩個數組,從而導致兩個測試用例實例:

@Parameters(name="Name: {2}") public static Iterable<Object[]> generateParameters() {List<Object[]> result = new ArrayList<Object[]>();result.add(new Object[] {"less", "css", "pass"});result.add(new Object[] {"less", "error", "fail"});return result; }

name注釋參數是可選的。 其值將在GUI或maven報告中顯示為測試用例名稱。 {n}是第n個數組值的占位符。 它們從0開始索引,因此第一個測試用例將被命名為Name: pass ,第二個測試用例將被命名為Name: fail 。

測試方法

參數化的測試用例可以具有任意數量的測試,并且必須使用@Test批注進行批注:

@Test public void testCss() { //dummy test methodString actualCss = compile(less);assertEquals(expectedCss, actualCss); }@Test public void testSourceMap() { //another test methodString actualCss = compile(less);assertEquals(expectedCss, actualCss); }private String compile(String less) { //dummy compile methodreturn "css"; }

輸出量

如果運行上述測試類,則JUnit視圖將顯示以下結構:

[F] com.github.sommeri.jUnit4Examples.ParametrizedTest [ ] |-- [Name: pass] [ ] |---------------- testCss[Name: pass] [ ] |---------------- testSourceMap[Name: pass] [F] |-- [Name: fail] [F] |---------------- testCss[Name: fail] [F] |---------------- testSourceMap[Name: fail]

完整的測試案例

@RunWith(Parameterized.class) public class ParametrizedTest {private String less;private String expectedCss;public ParametrizedTest(String less, String expectedCss, String name) {this.less = less;this.expectedCss = expectedCss;}@Parameters(name="Name: {2}")public static Iterable<Object[]> generateParameters() {List<Object[]> result = new ArrayList<Object[]>();result.add(new Object[] {"less", "css", "pass"});result.add(new Object[] {"less", "error", "fail"});return result;}@Testpublic void testCss() {String actualCss = compile(less);assertEquals(expectedCss, actualCss);}@Testpublic void testSourceMap() {String actualCss = compile(less);assertEquals(expectedCss, actualCss);}//dummy compile methodprivate String compile(String less) {return "css"; } }

翻譯自: https://www.javacodegeeks.com/2014/08/this-is-stuff-junit-dynamic-tests-generation.html

junit測試報告生成

總結

以上是生活随笔為你收集整理的junit测试报告生成_这是东西:jUnit:动态测试生成的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。