{"id":21240554,"url":"https://github.com/a252937166/help-test","last_synced_at":"2026-05-20T09:31:34.213Z","repository":{"id":105583854,"uuid":"258178644","full_name":"a252937166/help-test","owner":"a252937166","description":"单元测试中，用mock某些bean","archived":false,"fork":false,"pushed_at":"2020-05-03T06:42:49.000Z","size":72,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-21T19:36:25.290Z","etag":null,"topics":["mock","spring","test"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/a252937166.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-23T11:14:55.000Z","updated_at":"2020-11-20T02:41:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"bf3f99cd-a6bd-4bd9-946f-f8fe5e4c9f05","html_url":"https://github.com/a252937166/help-test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a252937166%2Fhelp-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a252937166%2Fhelp-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a252937166%2Fhelp-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a252937166%2Fhelp-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/a252937166","download_url":"https://codeload.github.com/a252937166/help-test/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243681004,"owners_count":20330155,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mock","spring","test"],"created_at":"2024-11-21T00:51:56.075Z","updated_at":"2026-05-20T09:31:29.177Z","avatar_url":"https://github.com/a252937166.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![codecov](https://codecov.io/gh/a252937166/help-test/branch/master/graph/badge.svg)](https://codecov.io/gh/a252937166/help-test)\n[![Build Status](https://www.travis-ci.org/a252937166/help-test.svg?branch=master)](https://www.travis-ci.org/a252937166/help-test)\n[![GitHub license](https://img.shields.io/github/license/a252937166/help-test)](https://github.com/a252937166/help-test/blob/master/LICENSE)\n[![GitHub stars](https://img.shields.io/github/stars/a252937166/help-test)](https://github.com/a252937166/help-test/stargazers)\n[![GitHub forks](https://img.shields.io/github/forks/a252937166/help-test)](https://github.com/a252937166/help-test/network)\n\n\n# 框架初衷\n\n在编写自己模块的单元测试的时候，依赖了其他模块的`service`或者其他`bean`，这时需要做mock，但是`mockito`或者`powermockito`对于我的需求来说又过于臃肿，而且我也不需要太过复杂的mock语法，所以就撸了这个小框架，只需要写一个`Mock`类来代替需要的`bean`就好了。\n\n# 用法\n\n详细用法可以查看[github](https://github.com/a252937166/help-test)上的测试用例\n\n## maven\n\n当前版本: 1.0.2\n\n```xml\n\u003c!-- https://mvnrepository.com/artifact/com.ouyanglol/spring-help-mock-starter --\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.ouyanglol\u003c/groupId\u003e\n    \u003cartifactId\u003espring-help-mock-starter\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.2\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## 配置文件\n\n```profile\nmock.help.packageRoot=com.xxx.xxx\n```\n\n`mock.help.packageRoot`配置当前所有测试代码的包路径，虽然不是必须的，当时建议配置，不然会扫描所有包下的文件(包括其他maven的包)，非常耗时。`mock.help.packageRoot`也不用太过精确，一般建议配置项目启动类的包路径就行了。\n\n## @EnableMock\n\n在启动类，或者Config类上加上`@EnableMock`表示启用`mock`类，不然`mock`不会生效。\n\n## Mock类\n\nmock的原理，是在spring容器，注入bean的时候，用另外一个实例代替它。那么Mock类也不能是任意的class。原则上需要是原本`bean`的子类或者和`bean`实现的同一个接口。\n\n比如原本的bean：\n\n```java\n@Slf4j\n@Service\npublic class TestServiceImpl implements TestService {\n    @Override\n    public void test() {\n        log.info(\"test\");\n    }\n}\n```\nmock类：\n\n```java\n@Slf4j\npublic class TestServiceMock implements TestService {\n    @Override\n    public void test() {\n        log.info(\"test Mock\");\n    }\n\n}\n```\n\n## 使用mock\n\n在正常逻辑的代码之上，只需要加个注解就行了:\n\n```java\n@HelpMockBean(beanClass = TestServiceMock.class)\nprivate TestService mock;\n```\n\n`beanClass`代表你使用的mock类，`TestService`就是需要被mock的`bean`。就这么简单，一看就懂了。","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa252937166%2Fhelp-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa252937166%2Fhelp-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa252937166%2Fhelp-test/lists"}