2016-05-03 5 views
3

Ich muss eine Klasse für REST-Web-Services testen eine Ausnahme wurde generiert. Ich benutze Jersey, Mockito und die IDE ist Eclipse, es funktioniert gut mit Maven-Kommandozeile, aber nicht mit Eclipse.Jersey Mockito Ausnahme

Klasse:

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); 
    } 
} 

Im pom ich habe:

<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> 

Als ich hinzufügen:

PowerMockito.mock(Service.class); 

oder

@Mock 
Service service; 

die Ausnahme unten wurde ausgelöst:

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

Bitte geben Sie einen _complete_. [MCVE] (http://stackoverflow.com/help/mcve) –

+0

@dur die anderen Abhängigkeiten sind nicht für Jersey oder JUnit-Tests –

Antwort

0

Versuchen Sie, unten Abhängigkeit hinzuzufügen. Fügen Sie es nach Jersey Abhängigkeit hinzu.

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

ich dies haben hinzuzufügen, aber es sind die gleichen Fehler –

+0

Ich habe ähnliche Problem hier gefunden: http://StackOverflow.com/Questions/3424207/testing-against-Java-ee-6-api Bitte überprüfen Sie, ob es hilft – Sravya

+0

Dank @Sravya die gleichen Fehler –

Verwandte Themen