Java Junit:需要部分模拟类
我有一门课Java Junit:需要部分模拟类,java,spring-boot,junit,mockito,Java,Spring Boot,Junit,Mockito,我有一门课 class AppSave{ @Autowired AppDaoimpl daoimpl; @Autowired AppService appService; method1(){daoimpl.fewCode()} method2(){appService.someCode()} } class AppSaveTest{ @Mock AppDaoimpl daoimpl; //What Should I do here So that I can Call someCod
class AppSave{
@Autowired
AppDaoimpl daoimpl;
@Autowired
AppService appService;
method1(){daoimpl.fewCode()}
method2(){appService.someCode()}
}
class AppSaveTest{
@Mock
AppDaoimpl daoimpl;
//What Should I do here So that I can Call someCode() of appService
AppService appService;
@InjectMocks
private AppSave appSave;
test(){
method2()
}
笔试课,比如
class AppSave{
@Autowired
AppDaoimpl daoimpl;
@Autowired
AppService appService;
method1(){daoimpl.fewCode()}
method2(){appService.someCode()}
}
class AppSaveTest{
@Mock
AppDaoimpl daoimpl;
//What Should I do here So that I can Call someCode() of appService
AppService appService;
@InjectMocks
private AppSave appSave;
test(){
method2()
}
仅供参考,我正在使用junit1.4。如果我模拟Appservice,那么我可以执行impl。在somCode()。中,您需要将测试标记为@SpringBootTest,以便您想要使用的springbean在测试中可用。然后,您可以将任何想要模拟的内容标记为@MockBean,如下所示:
@RunWith(SpringRunner.class)
@SpringBootTest
class AppSaveTest{
@MockBean
AppDaoimpl daoimpl;
@Autowired
AppService appService;
@Autowired
private AppSave appSave;
...
}
或者如果您想继续使用@InjectMocks:
@RunWith(SpringRunner.class)
@SpringBootTest
class AppSaveTest{
@Mock
AppDaoimpl daoimpl;
@Autowired
AppService appService;
@InjectMocks
@Autowired
private AppSave appSave;
...
}
您想将其作为SpringBean调用还是只调用方法代码?您使用SpringBoot吗?是的,SpringBoot我将从我的测试类中像appSave.method2()一样调用。您能更新您的帖子以实际提问吗?目前还不清楚是什么问题,我不能改变原型now@Plog,你能不能提供一些其他的解决方案,用@InjecTMocks和一个bean mocked,而另一个不是..你知道你不能改变原型吗?不管怎样,更新了答案