{"id":18598391,"url":"https://github.com/softwareking/halo-mock","last_synced_at":"2025-05-16T14:11:51.469Z","repository":{"id":93155488,"uuid":"217221472","full_name":"SoftwareKing/halo-mock","owner":"SoftwareKing","description":"halo-mock分享mock案例","archived":false,"fork":false,"pushed_at":"2020-10-13T16:57:51.000Z","size":35,"stargazers_count":0,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-16T14:11:50.747Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SoftwareKing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2019-10-24T05:52:51.000Z","updated_at":"2019-10-26T06:35:11.000Z","dependencies_parsed_at":"2023-03-29T20:19:19.044Z","dependency_job_id":null,"html_url":"https://github.com/SoftwareKing/halo-mock","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/SoftwareKing%2Fhalo-mock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftwareKing%2Fhalo-mock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftwareKing%2Fhalo-mock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftwareKing%2Fhalo-mock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SoftwareKing","download_url":"https://codeload.github.com/SoftwareKing/halo-mock/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254544157,"owners_count":22088808,"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":[],"created_at":"2024-11-07T01:32:25.897Z","updated_at":"2025-05-16T14:11:51.445Z","avatar_url":"https://github.com/SoftwareKing.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## halo-mock\nhalo-mock分享mock案例\n\n### Halo Powermock\n\nhow to mock final, static or private methods using powermock\n\nhttps://github.com/powermock/powermock\n\n\n## powermock\n\nPowerMock基本上cover了所有Mockito不能支持的case（大多数情况也就是静态方法，但其实也可以支持私有方法和构造函数的调用）。PowerMock使用了字节码操作，因此它是自带Junit runner的。在使用PowerMock时，\n必须使用@PrepareForTest注释被测类，mock才会被执行：\n@RunWith(PowerMockRunner.class)\n\n### 概要说明\n    \n单体测试工具，优点是能mock静态、final、私有方法等其他mock工具不具备的特点\n   \n1.重要注解一 @RunWith(PowerMockRunner.class)\n    \n2.重要注解二 @PrepareForTest({YourClass})\n    \n3.包括实例有普通Mock，Mock方法内部new出来的对象，Mock普通对象的final方法，Mock普通类的静态方法，Mock 私有方法\n\n\n## 参考资料\n\nhttps://www.jianshu.com/p/51930cc5dcf9\n\n\nhttps://github.com/hehonghui/mockito-doc-zh\n\nhttps://blog.csdn.net/luo15242208310/article/details/100098274\n\nhttp://www.thinkcode.se/blog/2012/02/18/test-coverage-in-a-multi-module-maven-project\n\nhttps://blog.csdn.net/onepersontz/article/details/58098729\n\nhttps://blog.csdn.net/hotdust/article/details/53406044\n\nhttps://www.jianshu.com/p/506a30b57ff7\n\n\n##命令介绍\n\nhttps://www.cnblogs.com/qyf404/archive/2015/12/12/5040593.html\n\n\n* cobertura:check\n\n   根据最新的源码标记(生成的class文件)校验测试用例的覆盖率,如果没有达到要求,则执行失败.\n\n* cobertura:check-integration-test\n\n   这个命令和cobertura:check功能是一样的,区别是二者绑定的maven生命周期不一样.cobertura:check绑定了test, cobertura:check-integration-test绑定了verify.再说的明白些,maven生命周期中有一个是test跑得单元测试,还有一个是integration-test跑的集成测试.而verify前就是integration-test.即cobertura:check-integration-test比cobertura:check涵盖的测试用例更多.\n\n* cobertura:clean\n\n   这个好理解,就是清理掉目录/target/cobertura/中得文件.目前发现里面就一个文件cobertura.ser.\n\n* cobertura:cobertura\n\n   这个插件的关键命令.标记被编译的文件,运行单元测试,生成测试报告.\n\n*  cobertura:cobertura-integration-test\n\n    和cobertura:cobertura做了一样的事情,区别是包含了集成测试用例.\n\n*  cobertura:dump-datafile\n\n    在命令行输出覆盖率数据.数据依据是生成的class文件.这个命令我没搞懂他的意义何在.在后面一个有趣的实验我们会用这个命令来更好的理解cobertura-maven-plugin.\n\n*  cobertura:help\n\n*  cobertura:instrument\n\n    标记被编译的class文件.执行这个命令会在目录/target/generated-classes/cobertura下生成一套class文件.\n\n### Java 各种Mock工具比较，JMockit无敌\n\nhttps://blog.csdn.net/imi00/article/details/79306028\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftwareking%2Fhalo-mock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftwareking%2Fhalo-mock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftwareking%2Fhalo-mock/lists"}