0
点赞
收藏
分享

微信扫一扫

手动创建Mock类完成测试

343d85639154 2022-05-04 阅读 53

一个模块的功能本身的实现需要依赖三方组件,在单元测试中通过完整的测试成本大。通过依赖注入的方式使得类与第三方组件进行解藕,从而可以专注于测试 类中的功能实现。

Example:

对于下载代码仓库的功能进行测试,代码库的下载依赖网络,也需要下载文件。而我们只想测试下载成功后的处理逻辑,这时候就可以对下载代码的逻辑类进行Mock完成测试。

Mock类的编写

    class MockCode extends Code{

        public MockCode(String address) {
            super(address);
        }

        @Override
        public void download(String url) {
        }

        @Override
        public void download(String url, String username, String password) {
        }

        @Override
        public void generateDuplicate() {
        }

        @Override
        public String judgeLanguage() {
            return "Java";
        }

    }

通过Mock类进行测试

    @Test
    public void should_download_github_java_code_success(){
        Repo repo = new Repo(repoDtoOfGithub, "0");

        assertTrue(repo.download(new MockCode(""), new RestTemplate()));
        assertEquals(Repo.DOWNLOADED, repo.getDownloadStatus());
        assertEquals("Java", repo.getLanguage());
    }

通过上述做法,我们可以将类的测试与第三方组件解藕,测试成本更低。

举报

相关推荐

0 条评论