{"id":13770884,"url":"https://github.com/easymock/easymock","last_synced_at":"2026-04-01T20:44:05.114Z","repository":{"id":545182,"uuid":"10610797","full_name":"easymock/easymock","owner":"easymock","description":"EasyMock, makes mocking easier since 2001","archived":false,"fork":false,"pushed_at":"2025-12-22T02:37:59.000Z","size":12262,"stargazers_count":831,"open_issues_count":63,"forks_count":312,"subscribers_count":57,"default_branch":"master","last_synced_at":"2025-12-27T21:53:07.334Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://easymock.org","language":"HTML","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/easymock.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["henri-tremblay"]}},"created_at":"2013-06-10T22:26:09.000Z","updated_at":"2025-12-22T02:38:02.000Z","dependencies_parsed_at":"2023-02-19T04:00:39.035Z","dependency_job_id":"ec0ba2ca-c509-428a-b65c-5005d7879d9b","html_url":"https://github.com/easymock/easymock","commit_stats":{"total_commits":1512,"total_committers":29,"mean_commits":52.13793103448276,"dds":0.2857142857142857,"last_synced_commit":"430b6a7acda479d900e1820b1eafecc52e6eb00d"},"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/easymock/easymock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easymock%2Feasymock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easymock%2Feasymock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easymock%2Feasymock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easymock%2Feasymock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/easymock","download_url":"https://codeload.github.com/easymock/easymock/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easymock%2Feasymock/sbom","scorecard":{"id":364252,"data":{"date":"2025-08-11","repo":{"name":"github.com/easymock/easymock","commit":"c10a8d3fc799f6758103162256460303073506ca"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.3,"checks":[{"name":"Token-Permissions","score":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/auto-assign.yml:11","Warn: no topLevel permission defined: .github/workflows/auto-assign.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/ci.yml:12"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/6 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"28 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Security-Policy","score":4,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Warn: no linked content found","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":2,"reason":"dependency not pinned by hash detected -- score normalized to 2","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/auto-assign.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/easymock/easymock/auto-assign.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/auto-assign.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/easymock/easymock/auto-assign.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/auto-assign.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/easymock/easymock/auto-assign.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/auto-assign.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/easymock/easymock/auto-assign.yml/master?enable=pin","Info:   2 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact easymock-5.6.0 not signed: https://api.github.com/repos/easymock/easymock/releases/219319855","Warn: release artifact easymock-5.5.0 not signed: https://api.github.com/repos/easymock/easymock/releases/185790281","Warn: release artifact easymock-5.4.0 not signed: https://api.github.com/repos/easymock/easymock/releases/168178057","Warn: release artifact easymock-5.3.0 not signed: https://api.github.com/repos/easymock/easymock/releases/159536664","Warn: release artifact easymock-5.2.0 not signed: https://api.github.com/repos/easymock/easymock/releases/119166330","Warn: release artifact easymock-5.6.0 does not have provenance: https://api.github.com/repos/easymock/easymock/releases/219319855","Warn: release artifact easymock-5.5.0 does not have provenance: https://api.github.com/repos/easymock/easymock/releases/185790281","Warn: release artifact easymock-5.4.0 does not have provenance: https://api.github.com/repos/easymock/easymock/releases/168178057","Warn: release artifact easymock-5.3.0 does not have provenance: https://api.github.com/repos/easymock/easymock/releases/159536664","Warn: release artifact easymock-5.2.0 does not have provenance: https://api.github.com/repos/easymock/easymock/releases/119166330"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 24 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T11:29:58.071Z","repository_id":545182,"created_at":"2025-08-18T11:29:58.071Z","updated_at":"2025-08-18T11:29:58.071Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28088831,"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","status":"online","status_checked_at":"2025-12-27T02:00:05.897Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-08-03T17:00:43.769Z","updated_at":"2026-04-01T20:44:05.105Z","avatar_url":"https://github.com/easymock.png","language":"HTML","funding_links":["https://github.com/sponsors/henri-tremblay"],"categories":["Mock","Projects","测试","项目"],"sub_categories":["Helper","Testing","测试"],"readme":"# EasyMock\n\n[![Join the chat at https://gitter.im/easymock/easymock](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/easymock/easymock?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n[![Download latest version](https://img.shields.io/github/downloads/easymock/easymock/total.svg)]()\n\nEasyMock is a Java library that provides an easy way to use Mock Objects in unit testing.\n\nYou can find the website and user documentation at http://easymock.org.\n\n# Developer information\n\n## Build status\n[![Build Status](https://github.com/easymock/easymock/actions/workflows/ci.yml/badge.svg)](https://github.com/easymock/easymock/actions/workflows/ci.yml?query=branch%3Amaster)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.easymock/easymock/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.easymock/easymock)\n\n## Environment setup\n\nI'm using:\n- IntelliJ 2025.3.1 Ultimate (thanks to JetBrains for the license)\n- Maven 3.9.11\n\nYou can also use Eclipse. I tried\n- Eclipse 2020.12 (but there was a weird compilation issue with ASM)\n\nTo configure your local workspace:\n- Import the Maven parent project to Eclipse or IntelliJ\n- Import the Eclipse formatting file `EasyMock-formatter.xml` (usable in Eclipse or IntelliJ)\n\n## To build EasyMock with Maven\n\nThere are three different levels of build.\n\n### Build without any active profile\n\nIt is a basic compilation of the application.\n\n`mvn install`\n\n### Full build\n\nThis build will check code coverage using Jacoco, run spotbugs and\nvalidate that the license headers are correctly set.\n\n`mvn install -PfullBuild`\n\n### Deploy build\n\nThis is the build to launch to deploy to the surefire repository. It assembles the application and add\nthe gpg checksum. You will usually launch it on top of the full build.\n\nThe command line will ask you to give the passphrase for the gpg private key.\n\n`mvn install -PdeployBuild`\n\n## To compile EasyMock in Eclipse\n\n- Install m2e\n- Import the EasyMock Maven parent project to your Eclipse workspace\n\n## To compile EasyMock in IntelliJ\n\n- Import the EasyMock Maven parent project as a New IntelliJ project\n\n## To update the versions\n\n- `mvn versions:set -DnewVersion=X.Y -Pall`\n- `mvn versions:commit -Pall` if everything is ok, `mvn versions:revert -Pall` otherwise\n\n## Configure to deploy to Maven Central repository\n\n- You will first need to add something like this to your settings.xml\n```xml\n\u003cservers\u003e\n    \u003cserver\u003e\n        \u003cid\u003eossrh\u003c/id\u003e\n        \u003cusername\u003esonatypeuser\u003c/username\u003e\n        \u003cpassword\u003esonatypepassword\u003c/password\u003e\n    \u003c/server\u003e\n\u003c/servers\u003e\n```\n- Then follow the [instructions](https://central.sonatype.org/pages/working-with-pgp-signatures.html) from the site below to create your key to sign the deployed items\n\n## To build the maven site (with spotbugs, checkstyle, jdepends and JavaNCSS reports)\n\n- You will to give enough memory to maven with `export MAVEN_OPTS=-Xmx512m` (or setting it as environment variable)\n- Then type `mvn site`\n\n## To check dependencies and plugins versions\n\n`mvn versions:display-dependency-updates versions:display-plugin-updates -Pall`\n\n## To download the sources associated to our dependencies\n\n`mvn dependency:resolve -Dclassifier=sources`\n\n## To update the license\n\n`mvn validate license:format -Pall`\n\n## To upgrade the Maven wrapper\n\n`mvn wrapper:wrapper`\n\n## To run Sonar\n\n`mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent test sonar:sonar`\n\n## Android\n\n- Install the Android SDK\n- Configure a device (real or simulated)\n- Add an `ANDROID_HOME` to target the Android SDK\n- Possibly put these in your path: `$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/emulator`\n- To launch an emulator from command line\n  - To list the configured device: `emulator -list-avds`\n  - To launch: `emulator -avd Nexus_5X_API_28`\n- Activate the debug mode if it's a real device\n- `mvn install -Pandroid`\n\n## To bundle EasyMock and deploy\n\n- Make sure the poms are on the snapshot of the version you want to deploy\n- Make sure `jq` is installed. If not, install it with your favorite package manager (`brew install jq`, `choco install jq`, `apt-get install jq`, `yum install jq`, etc.).\n- Add a little speech on the features in \"ReleaseNotes.md\" (remove the Change Log part, which will be regenerated automatically)\n- Set the gpg_passphrase as environment variables\n- Launch `./deploy-easymock.sh (major|minor|patch)` where the parameter tells which version number should be incremented at the end\n- During the deployment, you will be asked to do different things. Do them\n- Announce to gitter, tweet and blog ;-)\n\nIn case of a failure during the build before the deployment, do `mvn versions:commit -Pall` and start over.\n\nIf something was staged in Maven Central, you can drop the staging repository with `mvn nexus-staging:drop`.\n\n## Deploy the website\n\n- In local:\n  - Go to the EasyMock root directory\n  - Make sure the website directory is clean\n  - `./deploy-website.sh`\n\n## Start next version\n\nIn local:\n```bash\nmvn versions:set -DnewVersion=X.Z-SNAPSHOT -Pall\nmvn versions:commit -Pall\n```\n- Create next version in Jira (http://jira.codehaus.org/plugins/servlet/project-config/EASYMOCK/versions)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasymock%2Feasymock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feasymock%2Feasymock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasymock%2Feasymock/lists"}