← スキル一覧に戻る

nette-testing
by nette
Official Claude Code plugins for Nette
⭐ 29🍴 4📅 2026年1月18日
SKILL.md
name: nette-testing description: Invoke before writing or modifying any .phpt test files. Provides Nette Tester conventions, Assert methods, and tester commands.
Testing with Nette Tester
We use Nette Tester for unit testing. Test files should have .phpt extension.
composer require nette/tester --dev
Bootstrap File
The bootstrap file should set up the Tester environment and enable helper functions:
<?php
declare(strict_types=1);
require __DIR__ . '/../vendor/autoload.php';
Tester\Environment::setup();
Tester\Environment::setupFunctions(); // enables test(), testException(), testNoError()
Basic Test Structure
<?php
declare(strict_types=1);
use Tester\Assert;
use Nette\Assets\SomeClass;
require __DIR__ . '/../bootstrap.php';
test('SomeClass correctly does something', function () {
$object = new SomeClass();
$result = $object->doSomething();
Assert::same('expected value', $result);
});
test('SomeClass handles edge case properly', function () {
$object = new SomeClass();
$result = $object->handleEdgeCase();
Assert::true($result);
});
Key points:
- Use the
test()function for each test case - The first parameter of
test()should be a clear description of what is being tested - Do not add comments before
test()calls - the description parameter serves this purpose - Group related tests in the same file
Testing Exceptions
To test if code correctly throws exceptions:
Assert::exception(
fn() => $mapper->getAsset('missing.txt'),
AssetNotFoundException::class,
"Asset file 'missing.txt' not found at path: %a%",
);
The Assert::exception() method:
- First parameter: A closure that should throw the exception
- Second parameter: Expected exception class
- Third parameter (optional): Expected exception message, can contain placeholders (%a% means any text)
If the entire test() block is to end with an exception, you can use testException():
testException('throws exception for invalid input', function () {
$mapper = new FilesystemMapper(__DIR__ . '/fixtures');<br>
$mapper->getAsset('missing.txt');
}, AssetNotFoundException::class, "Asset file 'missing.txt' not found at path: %a%");
Essential Commands
# Run all tests
composer tester
# Run specific test file
vendor/bin/tester tests/common/Engine.phpt -s
# Run tests in specific directory
vendor/bin/tester tests/filters/ -s
Static Analysis & Code Quality using PHPStan
# Run PHPStan static analysis
composer phpstan
スコア
総合スコア
55/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
✓最近の活動
1ヶ月以内に更新
+10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
✓タグ
1つ以上のタグが設定されている
+5
レビュー
💬
レビュー機能は近日公開予定です

