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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java编写应用程序_为您的Java应用程序编写数据驱动的测试

發布時間:2023/12/3 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java编写应用程序_为您的Java应用程序编写数据驱动的测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java編寫應用程序

JUnit是一個功能非常強大的測試框架,它不僅為其用戶提供了編寫快速簡便的測試的功能,而且還為用戶提供了擴展它并使其按其期望的方式工作的機會。 在JUnit之上構建了許多框架,這些框架為目標受眾提供了各種易用的功能。

EasyTest是這樣一種框架,其主要重點是將數據驅動測試功能引入JUnit世界。

JUnit已經有某種機制可以為用戶提供某種數據驅動的測試感覺。 但是它還不夠,也不干凈。 例如,用戶可以使用@Parameterized Runner編寫數據驅動測試,但使用Parameterized Runner會導致編寫許多不必要的代碼。

EasyTest試圖通過彌合JUnit已擁有的內容和對用戶最方便的內容之間的差距來解決問題。

在今天的帖子中,我將簡要概述什么是EasyTest,以及它如何從一種業余愛好演變為一個成熟的項目,該項目已被許多公司和很多人使用。

入門

為了開始使用EasyTest,您要做的就是下載JAR文件。 您可以通過Maven做到這一點。 這是 Maven上最新的easytest-core JAR 的鏈接 。

下載JAR文件后,就可以編寫第一個數據驅動測試了。 這是使用EasyTest Core Module快速啟動和運行的分步指南。

步驟1 :您的pom文件中具有最新的EasyTest依賴項:

<dependency> <groupId>org.easetech</groupId> <artifactId>easytest-core</artifactId> <version>1.3.2</version> </dependency>

步驟2 :使用測試方法創建一個簡單的測試類

@RunWith(DataDrivenTestRunner.class)@DataLoader(filePaths = { "testExcelData.xls" })public class TestExcelDataLoader{private ItemService itemService = new RealItemService();@Testpublic void getExcelTestData(@Param(name="libraryId")Float libraryId, @Param(name="itemId")Float itemId) {System.out.print("Executing getExcelTestData :");System.out.println("LibraryId is :" + libraryId + " and Item Id is :" + itemId);}

EasyTest庫提供了許多選項,可用于有效執行測試。 例如,如果要并行執行測試,則EasyTest提供一個Parallel注釋。 請查看此博客文章,以詳細了解并行注釋 。

這是另一個利用EasyTest中可用功能的詳細示例:

@RunWith(DataDrivenTestRunner.class)@DataLoader(filePaths = { "testExcelData.xls" })@Format(date='dd/MM/yyyy')@Report@Parallel(threads=5)public class TestExcelDataLoader{@Duration(timeInMillis=1000)private ItemService itemService = new RealItemService();@Testpublic void getExcelTestData(@Param(name="libraryId")Float libraryId, @Param(name="itemId")Float itemId) {System.out.print("Executing getExcelTestData :");System.out.println("LibraryId is :" + libraryId + " and Item Id is :" + itemId);}

您可以查看源代碼的javadocs,以了解每種注釋的含義,還可以了解EasyTest中可用的功能。

在每個測試類上編寫帶有如此多注釋的測試類不僅耗時(典型的樣板代碼),而且還會引入難以跟蹤的錯誤。 因此,Easytest為您提供了一次定義和隨處使用功能的能力。 看下面的示例,與上面的示例相同,但更加簡潔:

另外,您可以在類級別使用TestPolicy批注將所有批注移動到單獨的可重用測試策略類。 這是一個例子。

@RunWith(DataDrivenTestRunner.class)@TestPolicy(TestExcelDataPolicy.class)public class TestExcelDataLoader{@Duration(timeInMillis=1000)private ItemService itemService = new RealItemService();@Testpublic void getExcelTestData(@Param(name="libraryId")Float libraryId, @Param(name="itemId")Float itemId) {System.out.print("Executing getExcelTestData :");System.out.println("LibraryId is :" + libraryId + " and Item Id is :" + itemId);}

在這里,我們沒有定義測試類的幾個批注,而是定義了一個TestPolicy Annotation ,它從測試類中抽象出了復雜的定義。

這是Policy類TestExcelDataPolicy樣子:

@DataLoader(filePaths = { "org/example/data/testExcelData.xls" })@Format(date='dd/MM/yyyy')@Report@Parallel(threads=5)public class TestExcelDataPolicy {}

具有這樣的抽象意味著現在您可以在多個測試中重用您的測試策略類,從而大大減少了樣板代碼。

定義測試類后,下一步就是定義測試數據文件。

步驟3 :創建您的測試數據文件(對于上面的示例,這將是一個名為testExcelData.xls的Excel文件)
第一行的第一列表示需要為其提供數據的測試方法的名稱。 第一行的第二和第三列代表測試輸入參數的名稱。 第2和3行代表實際測試數據。

getExcelTestData itemId libraryId11567 91475null 0

恭喜你 您剛剛編寫了第一個數據驅動測試。 當使用Junit支持的IDE運行上述測試時,EasyTest將生成2個測試,每組數據一個。 這樣,您就不必編寫用于使用不同參數進行測試的不同測試。

接下來,讓我們擴展該示例,并嘗試了解EasyTest的一些其他功能 。

了解EasyTest中的IoC容器支持

除了在測試類本身中定義/初始化testSubject(上述測試中的ItemService)之外,您還可以在配置文件中外部化初始化邏輯并在運行時注入正確的實例。 這樣做的好處是,您可以將初始化邏輯與測試邏輯分開,從而使測試更簡潔,更可維護。 其次,您也可以在其他測試中重用外部化的邏輯。 讓我們看看如何為上述測試做到這一點。

@RunWith(DataDrivenTestRunner.class)@DataLoader(filePaths = { "testExcelData.xls" })@TestConfigProvider({TestConfigProviderClass.class})public class TestExcelDataLoader{@Injectprivate ItemService itemService;@Testpublic void getExcelTestData(@Param(name="libraryId")Float libraryId, @Param(name="itemId")Float itemId) {System.out.print("Executing getExcelTestData :");System.out.println("LibraryId is :" + libraryId + " and Item Id is :" + itemId);}

請注意,我們在上述測試中添加了兩件事:

  • TestConfigProvider批注
  • 注入注解
  • TestConfigProvider批注采用一組配置提供程序類,從這些類可以加載Bean。 在上面的示例中,TestConfigProviderClass.class將如下所示:

    public class TestConfigProviderClass {@TestBean public ItemService itemService(){return new RealItemService();}

    還要注意,我們使用標準Javax批注@Inject來注入測試Bean。 EASYTEST支持@Inject按類型,注射@Named沿@Inject按名稱注射。 除此之外,EasyTest還支持按字段名稱進行注入。 EASYTEST也有自己的@Provided當用戶沒有或不能使用javax注釋的情況下的注釋。

    到此博客帖子結束了。 希望我能對EasyTest及其功能進行有趣的介紹。 如果您有任何疑問或疑問或想為該項目做出貢獻,請通過anujkumar@easetech.org與我聯系。

    翻譯自: https://www.javacodegeeks.com/2015/08/writing-data-driven-tests-for-your-java-application.html

    java編寫應用程序

    總結

    以上是生活随笔為你收集整理的java编写应用程序_为您的Java应用程序编写数据驱动的测试的全部內容,希望文章能夠幫你解決所遇到的問題。

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