在Oracle ADF应用程序上执行集成测试

时间:2011-01-03 11:58:10

标签: java oracle integration-testing oracle-adf cactus

我有一个在我的服务器上运行的ADF应用程序。我试图在其上运行一些集成测试用例。我曾经使用apache cactus框架在普通的web应用程序上运行测试。我的测试用例将扩展CactusStrutsTestCase并将运行。 我尝试接近,ADF应用程序具有相同的概念。但我收到连接拒绝错误

java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)

所以我的问题是,是否可以使用ServletTestcase在ADF应用程序中进行测试?ServletTestcase是Cactus框架的一部分?

由于 Jijoy

1 个答案:

答案 0 :(得分:0)

你在做什么是可能的。我知道,因为我已经完成了。

首先,沟渠正版Apache Cactus。它不再受支持了。您想要下载JSFUnit并使用它。它使用Apache Cactus,但仍在积极维护。

我建议你创建自己的测试用例,扩展ServletTestCase而不是直接使用ServletTestCase。

public class EJBTestCase extends ServletTestCase {
protected InitialContext context;

public static final String userId = "demouser";


public EJBTestCase(String string) {
    super(string);
}

private InitialContext getInitialContext() throws NamingException {
  Hashtable env = new Hashtable();

  env.put(Context.SECURITY_PRINCIPAL, "username");
  env.put(Context.SECURITY_CREDENTIALS, "password");


     return new InitialContext(env);
}

public void setUp() throws Exception {
    super.setUp();

    context = getInitialContext();

}

public void tearDown() throws Exception {
    super.tearDown();

    context.close();
}

public EJBTestCase() {
    super();
}
}

接下来,您需要设置web.xml文件:

  <filter>
    <filter-name>JSFUnitFilter</filter-name>
    <filter-class>org.jboss.jsfunit.framework.JSFUnitFilter</filter-class>
  </filter>
...

    <filter-mapping>
        <filter-name>JSFUnitFilter</filter-name>
        <servlet-name>ServletTestRunner</servlet-name>
      </filter-mapping>
      <filter-mapping>
        <filter-name>JSFUnitFilter</filter-name>
        <servlet-name>ServletRedirector</servlet-name>
      </filter-mapping>

...

  <servlet>
    <servlet-name>ServletRedirector</servlet-name>
    <servlet-class>org.jboss.jsfunit.framework.JSFUnitServletRedirector</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>ServletTestRunner</servlet-name>
    <servlet-class>org.apache.cactus.server.runner.ServletTestRunner</servlet-class>
  </servlet>

...

  <servlet-mapping>
    <servlet-name>ServletRedirector</servlet-name>
    <url-pattern>/ServletRedirector</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ServletTestRunner</servlet-name>
    <url-pattern>/ServletTestRunner</url-pattern>
  </servlet-mapping>

最后,当您运行测试用例时,必须传入cactus.contextURL参数。

-Dcactus.contextURL=http://127.0.0.1:7101/MyApp

我假设您正在使用JDeveloper。然后,您可以在项目属性&gt;下进行设置。运行/调试/配置文件 - &gt;编辑&gt;启动设置 - &gt; Java选项。