ant sourceanalyzer_ant junit_jenkins report(3)

电脑杂谈  发布时间:2017-01-24 18:16:38  来源:网络整理

Oracle ADF 开发必读 — 使用 JUnit 对您的应用程序进行单元测试 -- Powered by .itozi.net

图 9JUnit ADF Business Components Test Suite Wizard

完成该向导后,Oracle JDeveloper 将在 ModelTests 项目中创建以下文件:

在查看代码之前,我们先运行生成的测试用例,看看会发生什么。JUnit 使用测试套件的概念将测试集合在一起,因此我们使用 Oracle JDeveloper 的 JUnit 测试运行器来运行生成的测试套件。为此,在 Application Navigator 中右键单击测试套件类 (AllOTNAppModuleTests.java),然后从上下文菜单中选择Run:

Oracle ADF 开发必读 — 使用 JUnit 对您的应用程序进行单元测试 -- Powered by .itozi.net

图 10运行测试套件

测试一旦运行,您将能够在 JUnit Test Runner – Log 窗口中看到结果:

Oracle ADF 开发必读 — 使用 JUnit 对您的应用程序进行单元测试 -- Powered by .itozi.net

图 11测试套件的运行结果

从这个示例,您可以看到运行了两个单元测试并且都成功了(无失败、无错误)。现在,我们看一下生成的单元测试的实际代码并添加一些我们自己的测试。在 Application Navigator 中双击 DepartmentsVOTest.java 打开 DepartmentsVO 视图对象的单元测试的源代码:

Oracle ADF 开发必读 — 使用 JUnit 对您的应用程序进行单元测试 -- Powered by .itozi.net

图 12DepartmentsVO 单元测试的源代码

您首先会注意到代码中使用了 Java 5 批注;这些批注用于向 JUnit 指示该类中的哪些方法是单元测试(带有 @Test 批注的),哪些方法是在类中每个单元测试之前 (@Before) 或之后 (@After) 要运行的。与以前的 JUnit 版本不同,@Test、@Before 或 @After 方法都不必遵守特定的命名规则。您还会注意到,JUnit 不保证 @Before 方法、@Test 方法或 @After 方法的调用顺序;只保证在每个 @Test 方法之前先调用所有 @Before 方法,在每个 @Test 方法之后再调用所有 @After 方法。

Oracle JDeveloper 生成的测试类包含一个名为 testAccess 的测试方法,该方法尝试从应用程序模块获取一个视图对象实例(该应用程序模块由测试固件创建 — 稍后会详细介绍测试固件),并使用 JUnit 的断言来确保获取的视图对象非空。这是在 JUnit 中进行单元测试的常见模式:执行一个测试,然后使用一个 assert 方法验证结果。如果断言不为真,则 JUnit 将这个特定的单元测试标记为失败。

正如您所看到的,向导生成的基本单元测试过于简单。现在我们针对这个视图对象编写自己的单元测试,测试是否按要求强制了 Department ID 属性。我们可以编写这样一个单元测试:创建一行,不设置 Department ID,然后对该行进行验证,看到引发了预期的异常。但是,我们如何告诉 JUnit 我们期望看到异常呢(而且如果未引发异常,测试应该失败)?通过使用 @Test 批注的expected属性告诉 JUnit 我们期望看到某个异常,可以达到上述目的。我们希望在未提供所需属性的情况下,Oracle ADF 应该引发一个 oracle.jbo.AttrValException,因此,我们可以按如下所示编写我们的单元测试:

Oracle ADF 开发必读 — 使用 JUnit 对您的应用程序进行单元测试 -- Powered by .itozi.net

图 13用于确保必须提供 Department ID 的单元测试

如果您再次运行该测试套件类,您应该看到新加的测试成功运行:

Oracle ADF 开发必读 — 使用 JUnit 对您的应用程序进行单元测试 -- Powered by .itozi.net

图 14运行新加的单元测试

到目前为止,我们的所有测试均已成功。现在,我们根据刚刚来自用户社区的新需求进行一点 TDD:部门名称至少必须 4 个字符长。本着 TDD 的精神,在编写实现这一需求的一行代码之前,我们必须先编写对该需求的测试并看到测试失败。我们可以针对此需求编写一个单元测试:尝试将部门名称设置为三个字符的字符串(有预期的异常),运行该测试套件。下面是这个测试方法:


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-28553-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...