2012年4月13日星期五

JDev_032:使用JDeveloper 11g 集成JUnit 测试 ADF-BC

开发环境:JDevloper 11.1.2.1.0。

JDeveloper专门为测试ADF-BC提供了一个插件:BC4J JUnit Integration。
下面就介绍如何使用该插件。

1. 安装BC4J JUnit Integration Extension


2. 单独创建一个测试Project
为了不与Model项目的源代码混淆,这里单独建立一个测试Project。
(1)选择Custom Project

(2)选择新建Unit Tests,选择ADF Business Components Test Suite

(3)选择ADF Business Components 项目,选择AM

(4)生成如下AM测试类


3. 修改AM或VO测试类
默认情况下,只会为VO生成一个testAccess测试方法
    @Test
    public void testAccess() {
        ViewObject view = fixture1.getApplicationModule().findViewObject("JobsView1");
        assertNotNull(view);
    }

下面,我们增加几个测试。
(1)测试创建Job时,如果不设置JobId,是否会抛出AttrValException异常
@Test (expected = AttrValException.class)
    public void testJobIdRequired() {
        ViewObject view = fixture1.getApplicationModule().findViewObject("JobsView1");
        Row r = view.createRow();
        r.setAttribute("JobTitle", "Oracle CEO");
        r.validate();
    }

(2)测试创建Job时,JobTitle的长度至少为6。
    @Test (expected = AttrValException.class)
    public void testJobTitleAtLeast6Characters() {
        ViewObject view = fixture1.getApplicationModule().findViewObject("JobsView1");
        Row r = view.createRow();
        r.setAttribute("JobId", "CEO");
        r.setAttribute("JobTitle", "CEO");
        r.validate();
    }


3. 运行测试
右键JobsView1VOTest,选择运行,结果如下:

可以看出,testJobTitleAtLeast6Characters测试没有通过,因为测试期望抛出AttrValException,但是并没有抛出。

修改Jobs EO的JobTitle验证规则如下:

再次运行,发现测试都通过了。


Project 下载:ADF_Table(JUnit).7z

没有评论: