Skip to content
Back to skills

Php Testing

ASecurity

Write a focused PHPUnit test through the public service API and mock only an external dependency: ~~~php final class UserServiceTest extends TestCase { public function testFindsUserById(): void { $repository = $this->createMock(UserRepository::class); $user = new User('u-1'); $repository->expects($this->once()) ->method('findById') ->with('u-1') ->willReturn($user); self::assertSame($user, (new UserService($repository))->find('u-1')); } } ~~~ Keep the test independent and repeatable, and use ...

  • 549 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 5, 2026
developmentphpapi

Works with

  • api

Security analysis

A100/100

Pro scans all 18 files and shows the line behind each finding

Scanned September 5, 2026

npx -y skills add HoangNguyen0403/agent-skills-standard --skill php-testing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Php Testing?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Php Testing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hoangnguyen0403-php-testing-agent-skills-standard/badge)](https://www.skillsdirectory.com/skills/hoangnguyen0403-php-testing-agent-skills-standard)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
Write a focused PHPUnit test through the public service API and mock only an external dependency:

~~~php
final class UserServiceTest extends TestCase
{
    public function testFindsUserById(): void
    {
        $repository = $this->createMock(UserRepository::class);
        $user = new User('u-1');

        $repository->expects($this->once())
            ->method('findById')
            ->with('u-1')
            ->willReturn($user);

        self::assertSame($user, (new UserService($repository))->find('u-1'));
    }
}
~~~

Keep the test independent and repeatable, and use assertSame when type identity matters.

Files in this skill

  • eval-1.baseline.md780 B
  • eval-1.with-skill.md621 B
  • eval-2.baseline.md441 B
  • eval-2.with-skill.md463 B
  • eval-3.baseline.md624 B
  • eval-3.with-skill.md414 B
  • eval-4.baseline.md746 B
  • eval-4.with-skill.md522 B
  • eval-5.baseline.md562 B
  • eval-5.with-skill.md336 B
  • eval-6.baseline.md611 B
  • eval-6.with-skill.md395 B
  • trigger-1.md84 B
  • trigger-2.md81 B
  • trigger-3.md77 B
  • trigger-4.md71 B
  • trigger-5.md67 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…