2016-05-03 15 views
3

私は、例外が生成されたREST Webサービスのためのクラスをテストする必要があります。私は、ジャージー、Mockitoを使用して、IDEはEclipseのですが、それは、EclipseとMavenのコマンドラインで罰金ではなく動作します。ジャージーmockito例外

クラス:私はポンポンで

import static org.junit.Assert.assertEquals; 
import static org.mockito.Matchers.anyString; 
import static org.powermock.api.mockito.PowerMockito.when; 
import java.security.cert.CertificateException; 
import java.util.Collections; 
import java.util.Enumeration; 
import java.util.HashMap; 
import java.util.Map; 
import java.util.ResourceBundle; 
import java.util.UUID; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.mockito.Mock; 
import org.mockito.MockitoAnnotations; 
import org.mockito.runners.MockitoJUnitRunner; 

@RunWith(MockitoJUnitRunner.class) 
public class TestController { 

    @Mock 
    Service service; 

    @Before 
    public void setUp() throws CertificateException { 
     MockitoAnnotations.initMocks(this); 
    } 
} 

<dependency> 
    <groupId>org.mockito</groupId> 
    <artifactId>mockito-all</artifactId> 
    <version>1.9.0</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>org.mockito</groupId> 
    <artifactId>mockito-core</artifactId> 
    <version>1.9.0</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-servlet</artifactId> 
    <version>1.19</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-bundle</artifactId> 
    <version>1.19</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.jersey.contribs</groupId> 
    <artifactId>jersey-multipart</artifactId> 
    <version>1.19</version> 
</dependency> 

私は追加します。

PowerMockito.mock(Service.class); 

または

@Mock 
Service service; 

以下の例外がスローされました:

java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/ws/rs/core/Response 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    ..... 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 
+2

_complete_を提供してください。[MCVE](http://stackoverflow.com/help/mcve)他の依存関係@dur –

+0

はジャージか私はこれを追加しているが、同じである –

答えて

0

以下の依存関係を追加してみてください。ジャージー依存した後、それを追加します。

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

JUnitテストのためではありませんエラー –

+0

は、私はここで同様の問題が見つかりました:http://stackoverflow.com/questions/3424207/testing-against-java-ee-6-api それは同じエラー@Sravya – Sravya

+0

感謝を助けているかどうかを確認してください –

関連する問題