使用JUnit对ADF应用程序进行单元测试
JUnit是Java語(yǔ)言的單元測(cè)試軟件包,由于ADF構(gòu)建在J2EE框架之上,因此可以用來(lái)測(cè)試Oracle ADF應(yīng)用程序。 單元測(cè)試基本上是根據(jù)某些定義的測(cè)試標(biāo)準(zhǔn)來(lái)驗(yàn)證最小的可測(cè)試模塊的過(guò)程。 在這里,我將說(shuō)明如何在JDeveloper 12.2.1.3中設(shè)置和使用JUnit來(lái)測(cè)試ADF應(yīng)用程序。
JDeveloper 12.2.1.3帶有JUnit擴(kuò)展,因此無(wú)需單獨(dú)安裝。 讓我們從在JDeveloper IDE中創(chuàng)建Fusion Web應(yīng)用程序開(kāi)始。 在這里,我使用默認(rèn)HR模式的Departments表來(lái)為ADF應(yīng)用程序準(zhǔn)備模型。
下一步是創(chuàng)建一個(gè)新項(xiàng)目來(lái)保存單元測(cè)試,以使整個(gè)應(yīng)用程序看起來(lái)不模糊。 右鍵單擊應(yīng)用程序名稱(chēng),然后選擇“ 新建”->“從圖庫(kù)”->“常規(guī)”->“項(xiàng)目”->“ Java項(xiàng)目” ?
為該項(xiàng)目命名,然后單擊“ 完成”按鈕。
現(xiàn)在下一步是為業(yè)務(wù)組件創(chuàng)建Test Suite,在此之前,我們應(yīng)該知道單元測(cè)試中使用的一些術(shù)語(yǔ)。
測(cè)試套件 –一組測(cè)試用例
測(cè)試裝置 –一個(gè)用于處理長(zhǎng)時(shí)間運(yùn)行的測(cè)試用例并保持多個(gè)測(cè)試用例狀態(tài)的類(lèi)。
斷言 –根據(jù)預(yù)期結(jié)果檢查測(cè)試用例的結(jié)果。
現(xiàn)在打開(kāi)測(cè)試套件向?qū)?#xff0c;右鍵單擊新項(xiàng)目,然后選擇新建–>從圖庫(kù)–>常規(guī)–>單元測(cè)試–> ADF業(yè)務(wù)組件測(cè)試套件
單擊確定按鈕并配置測(cè)試套件。 您可以看到,這里我選擇了Model項(xiàng)目和DeptAm應(yīng)用程序模塊進(jìn)行測(cè)試。 您也需要為數(shù)據(jù)庫(kù)連接選擇配置,在這里我選擇了DeptAMLocal。
單擊下一步按鈕,看到該向?qū)⑸梢粋€(gè)Test Suite類(lèi)和一個(gè)Test Fixture類(lèi)。 該向?qū)н€將為應(yīng)用程序中的每個(gè)視圖對(duì)象生成單獨(dú)的單元測(cè)試類(lèi)。
現(xiàn)在單擊完成按鈕,您可以在新項(xiàng)目下創(chuàng)建所有文件。
DeptAmFixture.java –測(cè)試裝置類(lèi)
AllDeptAMTests.java –測(cè)試套件類(lèi)
DepartmentsVO1VOTest.java –部門(mén)ViewObject的單元測(cè)試類(lèi)
現(xiàn)在打開(kāi)DepartmentsVO1VOTest.java類(lèi),然后查看默認(rèn)的測(cè)試用例,該用例檢查Department View Object不應(yīng)為null。
您可以在此處看到@Test批注,這表明此java方法是單元測(cè)試,并且在執(zhí)行測(cè)試斷言之后用于驗(yàn)證測(cè)試結(jié)果。
@Test public void testAccess() {ViewObject view = fixture1.getApplicationModule().findViewObject("DepartmentsVO1");assertNotNull(view); }@Before public void setUp() { }@After public void tearDown() { }要檢查此默認(rèn)測(cè)試用例,請(qǐng)右鍵單擊測(cè)試套件類(lèi),然后選擇運(yùn)行。 您可以看到單元測(cè)試成功執(zhí)行。
下一步是創(chuàng)建一些自己的單元測(cè)試,我已經(jīng)創(chuàng)建了該單元測(cè)試,該單元測(cè)試用于檢查Department ID在新創(chuàng)建的行中是否不應(yīng)為null。
@Test public void checkDeptIdNotNull() {ViewObject deptVo = fixture1.getApplicationModule().findViewObject("DepartmentsVO1");Row newRow = deptVo.createRow();newRow.setAttribute("DepartmentId", 222);newRow.setAttribute("DepartmentName", "Testing");assertNotNull("DepartmentId should not be null", newRow.getAttribute("DepartmentId")); }因此,在上面的代碼中,我在Departments視圖對(duì)象中創(chuàng)建了一個(gè)新行,并在Department Id中設(shè)置了222。 現(xiàn)在運(yùn)行該測(cè)試用例。
您可以在這里看到測(cè)試成功通過(guò),因?yàn)镈epartment Id不為null,太好了。 現(xiàn)在在代碼中注釋此行
//newRow.setAttribute(“DepartmentId”,222);
然后再次運(yùn)行測(cè)試
看到測(cè)試由于AssertionError失敗,因?yàn)檫@次部門(mén)ID為null。 這就是我們可以編寫(xiě)自己的單元測(cè)試進(jìn)行檢查的方式。
在這里,我還要編寫(xiě)一個(gè)測(cè)試用例,以檢查部門(mén)是否在數(shù)據(jù)庫(kù)中。 我將1990年傳遞為不在數(shù)據(jù)庫(kù)中的部門(mén)ID。
@Test public void findDepartment() {ViewObject deptVo = fixture1.getApplicationModule().findViewObject("DepartmentsVO1");int deptId = 1990;Row row[] = deptVo.findByKey(new Key(new Object[] { deptId }), 1);Integer count = row.length;//assertTrue fails when second parameter evaluates to "false"assertTrue("Department Not Found", count.compareTo(0) == 1);}讓我們看看結(jié)果
這就是我們?cè)贠racle ADF應(yīng)用程序單元測(cè)試中配置和使用JUnit的方式。
翻譯自: https://www.javacodegeeks.com/2019/07/unit-testing-adf-application-using-junit.html
總結(jié)
以上是生活随笔為你收集整理的使用JUnit对ADF应用程序进行单元测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 手提电脑cpu前一百排行表(笔记本电脑c
- 下一篇: QQ竟然是一个办公神器,这十几个功能,你