1

ドキュメントに記載されている方法を使用して、Struts2 アクションで簡単なテストを実行しようとしています。ただし、テストクラスはインスタンス化されていないため、代わりに次の例外が発生します。

Results :

Tests in error: 
  initializationError(net.myorg.myProj.actions.HomeTest): Absent Code attribute in method that is not native or abstract in class file javax/servlet/ServletException

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0

私のテストクラスのコードは次のとおりです。

import com.opensymphony.xwork2.ActionProxy;
import org.apache.struts2.StrutsTestCase;
import org.junit.Test;
import static org.junit.Assert.*;

public class HomeTest extends StrutsTestCase
{    
    @Test
    public void testExecute() throws Exception
    {

        System.out.println("getting proxy");
        ActionProxy proxy = getProxy();

        System.out.println("got proxy");
        String result = proxy.execute();        

        System.out.println("got result: " + result);

        assertEquals("Landing", result, "landing");
    }  

    private ActionProxy getProxy()
    {
        return getActionProxy("/");
    }

}

私は何を間違っていますか?

編集:私のpom.xmlには、次のものがあります:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>

これがこの問題の原因であると推測しています。つまり、Web ブラウザーではなく IDE 内から単体テストを実行しただけでは、jar が適切にダウンロードされていないか、含まれていませんか? 単体テストが実行されるように、この jar を自分で含めるにはどうすればよいですか?

4

1 に答える 1