が可能です。私はそれをやったので知っている。
まず、本物のApache Cactusを流してください。もうサポートされていません。 JSFUnitをダウンロードして代わりに使用したいとします。 Apache Cactusを利用していますが、まだ積極的に管理されています。
ServletTestCaseを直接使用するのではなく、ServletTestCaseを拡張する独自のテストケースを作成することをお勧めします。あなたのテストケースを実行するときに、cactus.contextURLパラメータを渡す必要があり、最後に
<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>
:
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ファイルを必要としています。
-Dcactus.contextURL=http://127.0.0.1:7101/MyApp
JDeveloperを使用していることを前提としています。 [プロジェクトのプロパティ]> [実行/デバッグ/プロファイル] - > [編集] - > [起動設定] - > [Javaオプション]の順に選択します。