快速開始
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@Autowiredprivate UserFeign userFeign;/*** 獲取用戶信息** @param uid*/@Overridepublic 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注入到標記類中,注意這里必須是實現類,不能是接口@InjectMocksprivate TestServiceImpl testService;// 定義Mock類