快速开始

zixun-quickstart-mk3生成的项目已经配置好了基础的BaseTest,各个测试类只需要继承BaseTest就可以开始进行单元测试的编写了。

如何进行Mock

为了保证独立性和可重复执行,所有的外部依赖都需要进行Mock,SpringTest引入了Mockito作为单测Mock组件, Mickito官方文档:https://site.mockito.org/#how。

下面介绍如何在测试用例中对Feign进行Mock,以供参考。

待测代码及依赖:

public interface TestService {

/**

* 获取用户信息

* @param uid

*/

String getUserInfo(Integer uid);

}

@Slf4j

@Service

public class TestServiceImpl implements TestService {

@Setter

@Autowired

private UserFeign userFeign;

/**

* 获取用户信息

*

* @param uid

*/

@Override

public String getUserInfo(Integer uid) {

String userInfo = userFeign.getUserInfo(uid);

log.info("Userinfo of {}: {}", uid, userInfo);

if (StringUtils.isEmpty(userInfo)){

throw new IllegalArgumentException("用户不存在");

}

return userInfo;

}

}

@FeignClient(name = "user", url = "127.0.0.1:8888")

public interface UserFeign {

@GetMapping(value = "/user")

String getUserInfo(@RequestParam("userId") Integer userId);

}

测试用例1:

public class TestServiceTests extends BaseTest {

// @InjectMocks会将生效的Mock注入到标记类中,注意这里必须是实现类,不能是接口

@InjectMocks

private TestServiceImpl testService;

// 定义Mock类

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: