使用junit进行单元测试

JUnit是Java语言的单元测试软件包,由于ADF构建在J2EE框架之上,因此可以用于测试Oracle ADF应用程序。 单元测试基本上是根据某些定义的测试标准来验证最小的可测试模块的过程。 在这里,我将说明如何在JDeveloper 12.2.1.3中设置和使用JUnit来测试ADF应用程序。

JDeveloper 12.2.1.3带有JUnit扩展,因此无需单独安装。 让我们从在JDeveloper IDE中创建Fusion Web应用程序开始。 在这里,我使用默认HR模式的Departments表来为ADF应用程序准备模型。


下一步是创建一个新项目来保存单元测试,以使整个应用程序看起来不模糊。 右键单击应用程序名称,然后选择“ 新建”->“从图库”->“常规”->“项目”->“ Java项目”  


为该项目命名,然后单击“ 完成”按钮。


现在,下一步是为业务组件创建Test Suite,在此之前,我们应该知道单元测试中使用的一些术语。

测试套件 –一组测试用例

测试装置 –一种类,用于处理长时间运行的测试用例并保持多个测试用例的状态。

断言 –根据预期结果检查测试用例的结果。

现在打开测试套件向导,右键单击新项目,然后选择新建–>从图库–>常规–>单元测试–> ADF业务组件测试套件


单击确定按钮并配置测试套件。 您可以看到,这里我选择了Model项目和DeptAm应用程序模块进行测试。 您也需要为数据库连接选择配置,在这里我选择了DeptAMLocal。


单击下一步按钮,看到该向导将生成一个Test Suite类和一个Test Fixture类。 该向导还将为应用程序中的每个视图对象生成单独的单元测试类。


现在单击完成按钮,您可以在新项目下创建所有文件。

DeptAmFixture.java –测试装置类

AllDeptAMTests.java –测试套件类

DepartmentsVO1VOTest.java –部门ViewObject的单元测试类


现在打开DepartmentsVO1VOTest.java类,然后查看默认的测试用例,该用例检查Department View Object不应为null。

您可以在此处看到@Test批注,这表明此java方法是单元测试,并且在执行测试断言之后用于验证测试结果。

@Test
public void testAccess() {ViewObject view = fixture1.getApplicationModule().findViewObject("DepartmentsVO1");assertNotNull(view);
}@Before
public void setUp() {
}@After
public void tearDown() {
}

要检查此默认测试用例,请右键单击测试套件类,然后选择运行。 您可以看到单元测试成功执行。


下一步是创建一些自己的单元测试,我已经创建了该单元测试,用于检查Department ID在新创建的行中是否不应为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视图对象中创建了一个新行,并在Department Id中设置了222。 现在运行该测试用例。


您可以在这里看到测试成功通过,因为Department Id不为null,太好了。 现在在代码中注释此行

//newRow.setAttribute(“DepartmentId”,222);

然后再次运行测试


看到测试由于AssertionError失败,因为这次部门ID为null。 这就是我们可以编写自己的单元测试进行检查的方式。

在这里,我还要编写一个测试用例,以检查部门是否在数据库中。 我将1990年传递为不在数据库中的部门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);}

让我们看看结果


这就是我们在Oracle ADF Application for Unit Testing中配置和使用JUnit的方式。

翻译自: https://www.javacodegeeks.com/2019/07/unit-testing-adf-application-using-junit.html

使用junit进行单元测试

使用junit进行单元测试_使用JUnit对ADF应用程序进行单元测试相关推荐

  1. 使用junit进行单元测试_使用JUnit5对DynamoDB应用程序进行单元测试

    使用junit进行单元测试 在上一篇文章中,我描述了新的Java 2 AWS开发工具包,它为调用不同AWS服务的Java客户端提供了非阻塞IO支持. 在本文中,我将介绍一种用于单元测试AWS Dyna ...

  2. junit5_使用JUnit对ADF应用程序进行单元测试

    junit5 JUnit是Java语言的单元测试软件包,由于ADF构建在J2EE框架之上,因此可以用来测试Oracle ADF应用程序. 单元测试基本上是根据某些定义的测试标准来验证最小的可测试模块的 ...

  3. 使用JUnit对ADF应用程序进行单元测试

    JUnit是Java语言的单元测试软件包,由于ADF构建在J2EE框架之上,因此可以用来测试Oracle ADF应用程序. 单元测试基本上是根据某些定义的测试标准来验证最小的可测试模块的过程. 在这里 ...

  4. junit进行单元测试_通过JUnit规则轻松进行AppEngine单元测试

    junit进行单元测试 by Ramesh Lingappa 通过拉梅什·林加帕(Ramesh Lingappa) 通过JUnit规则轻松进行AppEngine单元测试 (AppEngine unit ...

  5. java junit 怎么写_使用JUnit测试java代码

    标签: Junit 单元测试实验报告 一.实验环境 MyEclipse2014.Junit4.10 二.实验目的 学会单元测试,在MyEclipse中进行Junit测试 三.实验步骤 1.写出要测试的 ...

  6. junit数据驱动测试_使用Junit和Easytest进行数据驱动的测试

    junit数据驱动测试 在本文中,我们将看到如何使用Junit进行数据驱动的测试. 为此,我将使用一个名为EasyTest的库. 我们知道,对于TestNG,它已内置了数据提供程序. 通过简单的测试, ...

  7. junit 测试 异常_使用JUnit规则测试预期的异常

    junit 测试 异常 这篇文章展示了如何使用JUnit测试预期的异常. 让我们从我们要测试的以下类开始: public class Person {private final String name ...

  8. mockito mock void方法_使用 Junit + Mockito 实践单元测试!

    一.前言 相信做过开发的同学,都多多少少写过下面的代码,很长一段时间我一直以为这就是单元测试... @SpringBootTest @RunWith(SpringRunner.class) publi ...

  9. 单元测试junit参数_使用Junit参数在更少的时间内编写更好的单元测试

    单元测试junit参数 大多数人都知道单元测试的重要性和好处,以及为什么要在进行的项目中使用它们. 而且,大多数人不喜欢在他们从事的项目中编写单元测试. TDD的人当然处于另一面,但根据我的经验,他们 ...

最新文章

  1. Java中传参数--值传递和引用传递
  2. [Asp.net]使用flexpaper+swftools大文件分页转换实现在线预览
  3. gluPerspective和gluLookAt的关系
  4. 哈理工计算机学院孙广路,我校举行人工智能前沿领域-计算机视觉专题报告会...
  5. 利用python来解析html
  6. Learning from Imbalanced Classes
  7. 使用Mono将C#编译运行至WebAssembly平台
  8. JavaFX官方教程(三)之JavaFX示例应用程序入门
  9. php实现飘窗,JS实现网站图片飘窗效果,JavaScript悬浮广告(附详细代码)
  10. 潘多拉固件设置ipv6_Phicomm-k2+pandorabox固件+PPPOE拨号+IPV6
  11. 汽车芯片严重短缺,价格全线上涨,“缺芯”仍将延续
  12. Python 根据起始时间和结束时间计算时长
  13. OSChina 周五乱弹 ——程序员看火影忍者被女同事鄙视了
  14. Java基础英语单词表
  15. 用断点续存实现视频快速上传
  16. 适配USB接口奕力 ILITEK Multi-Touch-V5000
  17. 【Linux系列】什么是LVM
  18. 【nssm将exe封装成服务】
  19. ArcGIS Maritime——初识海图模块(1)服务器端环境配置并加载海图服务
  20. 【转载】csr8670--sink工程的大致工作流程分析(以speaker为例)二

热门文章

  1. AGC044E Pandom Pawn(期望+凸包)
  2. CF1034E Little C Loves 3 III(神仙构造+FWT_OR卷积)
  3. P3170-[CQOI2015]标识设计【插头dp】
  4. nssl1452-排行榜【数论】
  5. 牛客-沙漠点列【tarjan】
  6. 欢乐纪中某A and B组赛【2019.1.23】
  7. 2021牛客暑期多校训练营3 C-Minimum grid(二分图)
  8. M. Monster Hunter(树形dp)
  9. 【树链剖分】【倍增】宝石(2021GDOI Day2 T1)
  10. [集训队作业2018]小Z的礼物(min-max容斥,插头dp)