SpringBoot 提供一个注解@SpringBootTest,它能够测试你的SpringApplication,因为SpringBoot程序的入口是SpringApplication,
基本的所有配置都会通过入口类去加载,而注解可以引用入口类的配置。
“java
@RunWith(SpringJUnit4ClassRunnerclass)
//指定SpringBoot工程的Application启动类
//支持web项目
@WebAppConfiguration
@SpringBootTest(classes = AppApplicationclass, webEnvironment = SpringBootTestWebEnvironmentMOCK)
public class IndexControllerTest {
@Autowired
private IndexService indexService;
第一步你需要在appctx文件中申明:
<bean id="serviceC" name="service_c_Mock" class="orgmockitoMockito" factory-method="mock">
<constructor-arg value="comxyxServiceC"></constructor-arg>
</bean>
需要注意的是bean的id必须要和A和B中autowire时使用名字一致。或者用类型也行。
然后在单测case中用@Mock或者@Resource引入sercieC。接着在单测case的Setup中调用如下语句。
MockitoAnnotationsinitMocks(this);
这时你测试A的方法,A访问B,B访问C时,调用会落在mockito生成的一个代理上。这个时候所调用的任何方法都会返回null。
这可能不是你期望的,你可能期望在A用到的那些些方法上,输入某个值时返回某个特定的值。这个时候你需要:
when()then();
如果这还不够,你希望他输入某个值的时候返回特定值,如果输入的值不是特定值的时候,返回正常逻辑的值,你需要spy,并传入一个serviceC的实现。
mockMvc = MockMvcBuilders<StandaloneMockMvcBuilder>webAppContextSetup(wac)build();
既可解决
以上就是关于如何测试springboot方法全部的内容,包括:如何测试springboot方法、如何用mockito+spring进行单元测试、关于spring mvc的测试等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)