2016-03-30 2 views
0

I JMockit für Funktionstests für das in einem Testmethode verwende ich wie unterFehler beim Abruf während in JMockit @Test Methode if-else-Bedingung mit

if-else Zustand bin mit
@Ignore 
@Test(expected = CoreServiceException.class) 
public final void setExpectationsForOrchestration(@Mocked final int type, 
     @Mocked final Object request, 
     @Mocked final String responseFile) throws Exception{ 


     new NonStrictExpectations() { 

     { 
      XStream xstream = new XStream(); 
      File obligationResponseList = new File(mockDataDir 
       + responseFile); 
      FileReader xmlReader = new FileReader(
       obligationResponseList); 
      if (type == 1) { 
      orchestrationInstance 
       .retrieveServiceObligationResponseByServiceObligationRequest(
        (ServiceObligationRequest) request, 
        (AppContext) any); 
      } else if (type ==2) { 
      orchestrationInstance 
       .retrieveServiceObligationEntitlementResponseByServiceObligationEntitlementRequest(
        (ServiceObligationEntitlementRequest) request, 
        (AppContext) any); 
      } else if (type == 3) { 
      orchestrationInstance 
       .retrieveServiceObligationHeaderOfferResponseByServiceObligationProductRequest(
        (ServiceObligationProductRequest) request, 
        (AppContext) any); 
      } 
      else if (type == 4) { 
      orchestrationInstance 
       .retrieveServiceObligationCustomerDocumentByServiceObligationRequest(
        (ServiceObligationRequest) request, 
        (AppContext) any); 
      } 

      result = xstream.fromXML(xmlReader); 
     } 
     }; 


    } 
But while running i am getting this error 

java.lang .IllegalArgumentException: Ungültige bedingte Anweisung innerhalb Erwartung Block bei com.hp.it.sbs.obligation.service.ObligationServiceImplMockTest_old 1 $ (ObligationServiceImplMockTest_old.java:2560) bei com.hp.it.sbs.obligation.service.ObligationServiceImplMockTest_old. .setExpectionsForOrchestration (ObligationServiceImpl MockTest_old.java:2547) bei com.hp.it.sbs.obligation.service.ObligationServiceImplMockTest_old.testRetrieveServiceObligationResponsesByServiceObligationRequests (ObligationServiceImplMockTest_old.java:169) bei sun.reflect.NativeMethodAccessorImpl.invoke0 (native Methode) bei java.lang. reflect.Method.invoke (Method.java:597) bei org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run (JUnit4TestReference.java:50) bei org.eclipse.jdt.internal.junit.runner .TestExecution.run (TestExecution.java:38) bei org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:459) bei org.eclipse.jdt.internal.junit.runner .RemoteTestRu nner.runTests (RemoteTestRunner.java:675) bei org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner.java:382) bei org.eclipse.jdt.internal.junit.runner. RemoteTestRunner.main (RemoteTestRunner.java:192)

Kann jemand auf diese Frage beantworten. Ich verwende die jmockit Version 1.21

Antwort

0

Es ist nur, was die Fehlermeldung sagt: "Ungültige bedingte Anweisung innerhalb Erwartung Block". Das heißt, ein Erwartungsblock darf (per Entwurf) keine if Anweisungen haben (oder jede andere Anweisung, die eine boolesche Bedingung enthält).

Stattdessen sollte der Test nur die Erwartungen enthalten, die er für das jeweils getestete Szenario benötigt.

Verwandte Themen