Java 在Jmockit@Test方法中使用if-else条件时出错
我使用Jmockit进行功能测试,在一种测试方法中,我使用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
@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
语句(或任何其他包含布尔条件的语句)
相反,测试应该只包含它对正在测试的一个特定场景的期望