Java 在Jmockit@Test方法中使用if-else条件时出错

Java 在Jmockit@Test方法中使用if-else条件时出错,java,jmockit,Java,Jmockit,我使用Jmockit进行功能测试,在一种测试方法中,我使用if-else条件,如下所示 @Ignore @Test(expected = CoreServiceException.class) public final void setExpectationsForOrchestration( @Mocked final int type, @Mocked final Object request, @Mocked final String responseFil

我使用Jmockit进行功能测试,在一种测试方法中,我使用if-else条件,如下所示

@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:无效的条件语句 内部期望块 com.hp.it.sbs.responsibility.service.ObligationServiceImplMockTest_old$1。(ObligationServiceImplMockTest_old.java:2560) 在 com.hp.it.sbs.responsibility.service.ObligationServiceImplMockTest_old.SetExpectationsForChestRation(ObligationServiceImplMockTest_old.java:2547) 在 com.hp.it.sbs.responsibility.service.ObligationServiceImplMockTest_old.TestRetrieveServiceOpligationResponseByServiceOpligationRequests(ObligationServiceImplMockTest_old.java:169) 位于的sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) java.lang.reflect.Method.invoke(Method.java:597)位于 org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 在 org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)


有人能回答这个问题吗。我使用的是jmockit版本1.21,这正是错误消息所说的:“期望块中的条件语句无效”。也就是说,预期块(根据设计)不允许有
if
语句(或任何其他包含布尔条件的语句)

相反,测试应该只包含它对正在测试的一个特定场景的期望