{"id":15226350,"url":"https://github.com/wickedone/muppet","last_synced_at":"2025-10-03T23:32:58.125Z","repository":{"id":42447400,"uuid":"422548397","full_name":"wickedOne/muppet","owner":"wickedOne","description":"unit testing your setters, getters, adders, removers, issers and whatevers","archived":true,"fork":false,"pushed_at":"2022-04-05T17:27:40.000Z","size":140,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-17T23:52:46.788Z","etag":null,"topics":["infection","integration-testing","mutation","mutation-testing","php","phpunit","tdd","test","testing","testing-tools","unit-test","unit-testing"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":false,"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/wickedOne.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-10-29T11:24:32.000Z","updated_at":"2022-12-29T04:18:45.000Z","dependencies_parsed_at":"2022-08-24T14:34:27.628Z","dependency_job_id":null,"html_url":"https://github.com/wickedOne/muppet","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wickedOne%2Fmuppet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wickedOne%2Fmuppet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wickedOne%2Fmuppet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wickedOne%2Fmuppet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wickedOne","download_url":"https://codeload.github.com/wickedOne/muppet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235204448,"owners_count":18952326,"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":["infection","integration-testing","mutation","mutation-testing","php","phpunit","tdd","test","testing","testing-tools","unit-test","unit-testing"],"created_at":"2024-09-28T20:04:43.133Z","updated_at":"2025-10-03T23:32:52.802Z","avatar_url":"https://github.com/wickedOne.png","language":"PHP","readme":"# muppet\nunit testing your getters, setters, adders, removers, issers and whatevers.\n\n[![Mutation testing badge](https://img.shields.io/endpoint?style=flat\u0026url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2FwickedOne%2Fmuppet%2Fmaster)](https://dashboard.stryker-mutator.io/reports/github.com/wickedOne/muppet/master)\n[![Type Coverage](https://shepherd.dev/github/wickedOne/muppet/coverage.svg)](https://shepherd.dev/github/wickedOne/muppet)\n[![codecov](https://codecov.io/gh/wickedOne/muppet/branch/master/graph/badge.svg)](https://codecov.io/gh/solrphp/solarium-bundle)\n[![PHPStan static analysis](https://github.com/wickedOne/muppet/actions/workflows/phpstan.yml/badge.svg)](https://github.com/solrphp/solarium-bundle/actions/workflows/phpstan.yml)\n[![coding standards](https://github.com/wickedOne/muppet/actions/workflows/coding-standards.yml/badge.svg)](https://github.com/solrphp/solarium-bundle/actions/workflows/coding-standards.yml)\n\n## installation\nto add this library to your dev dependencies use\n```bash\ncomposer require --dev wickedone/muppet\n```\n\n## but why?\na lot has been written about the necessity of testing your getters and setters or why it shouldn't been done.\nfrom my personal perspective, testing getters and setters provide a stable level of coverage\nand thus the ability to pin your ci to a minimum coverage value.\n\n## what it does\nthis library doesn't promise to generate perfect, non failing tests out of the box (though it tries).\nit does however generate test classes which are easy to modify and, most importantly, are compatible with [infection](https://infection.github.io/guide/) (i.e. not too much black magic fuckery).\n\n## usage\n```php\n$config = new Config(\n  '~/Code/Project/src',  // base dir\n  '~/Code/Project/tests/Unit', // tests dir\n  // namespace fragments\n  [\n    'Awesome',\n    'Namespace',\n    'Tests',\n    'Unit',\n  ],\n  'foo \u003cbar@qux.com\u003e' // author (optional)\n);\n\n(new Generator($config))\n  -\u003egenerate('MyEntity')\n;\n```\n\n## assumptions\nbecause we love those...\n\n- iterable properties use adders and removers rather than setters\n- removers return booleans: true on removal, false otherwise\n- ``Tests`` is part of the tests namespace\n\n## symfony integration\nplease see the [muppet-bundle](https://github.com/wickedOne/muppet-bundle)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwickedone%2Fmuppet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwickedone%2Fmuppet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwickedone%2Fmuppet/lists"}