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应用程序单元测试中配置和使用JUnit的方式。

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

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

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

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

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

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

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

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

  4. 使用JUnit5对DynamoDB应用程序进行单元测试

    在之前的文章中,我描述了新的Java 2 AWS SDK,它为调用不同AWS服务的Java客户端提供了非阻塞IO支持. 在本文中,我将介绍一种用于单元测试AWS DynamoDB调用的方法. 有几种方 ...

  5. 为Spark 程序添加单元测试

    为Spark 程序添加单元测试 一.ScalaTest 测试框架 二.Spark Application 该如何进行单元测试? 三.Spark Fast Tests 组件 相比于传统代码,Spark是 ...

  6. 原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (一)什么是单元测试

    If builders built buildings the way programmers wrote programs, then the first woodpecker that came ...

  7. docker安装_以简便的方式监控Docker容器中的ADF应用程序

    docker安装 在这篇简短的文章中,我将展示一种简单的方法来确保在Docker容器中运行的ADF应用程序在内存利用率方面是健康的Java应用程序. 我将使用标准工具JConsole,它是计算机上JD ...

  8. 使用xUnit为.net core程序进行单元测试(中)

    第一部分:  使用xUnit为.net core程序进行单元测试(上), 下面有一点点内容是重叠的.... String Assert 测试string是否相等: [Fact] public void ...

  9. docker 容器监控_以简便的方式监控Docker容器中的ADF应用程序

    docker 容器监控 在这篇简短的文章中,我将展示一种简单的方法来确保在Docker容器中运行的ADF应用程序在内存利用率方面是健康的Java应用程序. 我将使用标准工具JConsole,它是计算机 ...

最新文章

  1. 在CentOS 7.7 x86_64上安装python3的selenium 3模块实录
  2. PHP引擎php.ini 和fastcti优化
  3. 基于Matlab的遗传算法优化BP神经网络在非线性函数拟合中的应用
  4. clojure的感觉
  5. python编写程序-Python 编程速成(推荐)
  6. 关于c++中运算符的总结
  7. Oracle分页查询格式(八)
  8. 计算机系统的优化具体操作,从八个方面来探讨计算机操作系统的优化
  9. 考不上本科就是低智商?用python爬3000条数据狠打脸
  10. 以swoole为例,学习如何实现协程
  11. 页面加载过程中触发的事件
  12. android 开源fc模拟器_用 Go 撸了一个 NES/FC/红白机模拟器——GoNES
  13. 封装继承多态的关联性
  14. 大气数据计算机输出形式,大气数据计算机
  15. Auto.js找图找色常用功能
  16. RBAC权限系统设计
  17. Error running ‘Tomcat8.5‘ port out of range-1 (moments ago)
  18. Random Walk 随机游走算法
  19. springboot+Thymeleaf生成PDF
  20. Oracle10g的安装

热门文章

  1. jzoj3895-数字对【RMQ,GCD,二分答案,单调队列】
  2. ssl1626-花店橱窗布置【日常dp】
  3. [XSY] 分割(dfs树)
  4. P3327 约数的个数和 [约数函数性质,数论分块]
  5. 动态规划训练9 [Brackets POJ - 2955 ]
  6. 6、oracle数据库下查询操作
  7. 腾讯面试题:一条SQL语句执行得很慢的原因有哪些?
  8. 服务高可用:幂等性设计
  9. ssh(Spring+Spring mvc+hibernate)——applicationContext.xml
  10. java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml