如何从junit中的测试类调用服务方法。我无法在Junit测试类中调用我们的服务类方法。请指导我调用服务类方法并获得实际响应。服务类方法(类名:SubmitContractServiceImpl的.java)
@Override
public ScheduleNowUrlBean getScheduleNowUrl(String invoiceId, String status, String checksum) throws Exception {
log.info("getScheduleNowUrl method started.");
ScheduleNowUrlBean scheduleNowUrlBean = null;
try {
scheduleNowUrlBean = new ScheduleNowUrlBean();
if (validateChecksum(invoiceId, status, checksum)) {
scheduleNowUrlBean.setScheduleUrl(scheduleNowUrl == null ? "" : scheduleNowUrl.trim());
scheduleNowUrlBean.setFlag(true);
} else {
scheduleNowUrlBean.setFlag(false);
}
} catch (Exception ex) {
scheduleNowUrlBean.setErrorCode("2000");
scheduleNowUrlBean.setErrorDescription("Some error occured.");
log.error("Exception in getting schedule now url.Exception is: " + ex.getMessage());
}
log.info("getScheduleNowUrl method completed.");
return scheduleNowUrlBean;
}
Test class method ( SubmitContractServiceImplTest.java)
@Test
public void validateChecksumTest() throws Exception {
ScheduleNowUrlBean scheduleNowUrlBean = new ScheduleNowUrlBean();
scheduleNowUrlBean.setFlag(true);
scheduleNowUrlBean.setScheduleUrl("https://mbusa-servicescheduling- test.cfapps.io/");
given(this.submitContractServiceImpl.getScheduleNowUrl("EXXCS0614R", "success",
"965r6PO1%2BIsaVEZhzTFChs5xGFTfJPL1x%2FT8kDWJbos%3D")).willReturn(scheduleNowUrlBean);
}
i am not able to call our service class method to Test class.It is a springBoot application and the service class in for RestController.Basically it is a rest service.
we don't want to call controller method.we test only our service class method.?
答案 0 :(得分:0)
如果它是一个Spring启动应用程序,你应该有一个类似于:
的Application类@SpringBootApplication
@ComponentScan(basePackages = {"com...."})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
然后你的服务将有一个注释,以确保它被添加到spring bean容器中:
@Service
public class ScheduleNowUrlBean {
}
然后你可以在测试中使用:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class LookUpControllerTest {
@Autowired
private ScheduleNowUrlBean scheduleNowUrlBean ;
@Test
public void validateChecksumTest() throws Exception {
scheduleNowUrlBean.setFlag(true);
scheduleNowUrlBean.setScheduleUrl("https://mbusa-servicescheduling- test.cfapps.io/");
given(this.submitContractServiceImpl.getScheduleNowUrl("EXXCS0614R", "success",
"965r6PO1%2BIsaVEZhzTFChs5xGFTfJPL1x%2FT8kDWJbos%3D")).willReturn(scheduleNowUrlBean);
}