gpt4 book ai didi

java - 对 Oracle ADF 应用程序进行集成测试

转载 作者:行者123 更新时间:2023-11-29 09:23:34 24 4
gpt4 key购买 nike

我有一个在我的服务器上运行的 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)

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

谢谢极乐

最佳答案

你正在做的是可能的。我知道,因为我已经做到了。

首先,放弃正版 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。然后,您可以在 Project Properties > Run/Debug/Profile -> Edit > Launch Settings -> Java Options 下进行设置。

关于java - 对 Oracle ADF 应用程序进行集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4584215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com