2

サーバーで実行されている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アプリケーションでテストを行うことは可能ですか?

ありがとうジジョイ

4

1 に答える 1

0

あなたがしていることは可能です。私はそれをしたので、私は知っています。

まず、本物のApacheCactusを捨てます。もうサポートされていません。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を使用していると思います。次に、これを[プロジェクトのプロパティ]>[実行/デバッグ/プロファイル]->[編集]>[起動設定]->[Javaオプション]で設定できます。

于 2011-01-29T02:13:05.357 に答える