refaltor / pest-pmmp-tests
Little library for create unit test in PocketMine with Await Generator.
2.1.0
2025-04-12 12:19 UTC
Requires
- sof3/await-generator: ^3.6
Requires (Dev)
- pocketmine/pocketmine-mp: ^5.27
README
Pest PMMP Tests
Simple & elegant unit testing for PocketMine-MP inspired by Pest and powered Await Generator.
π¦ Installation
composer require refaltor/pest-pmmp-tests
π¦ Simple Usage
In your PocketMine plugin, you can easily integrate this unit testing library and run it either through a command or directly in onEnable β itβs totally up to you.
public function onEnable(): void { # tester load PocketMineTester::initPlugin($this); PocketMineTester::launchTest(__DIR__ . '/tests', "core\\tests\\"); }
Project Structure Example :
my-plugin/
βββ src/
β βββ core/
β βββ Main.php
βββ tests/
β βββ MyFirstTest.php
βββ plugin.yml
βββ composer.json
βββ README.md
π¦ Test Example
Note: For your tests to run, your .php file must end with ...Test.php, and all the functions within that file must end with ...test().
<?php namespace core\tests; use core\Main; use Generator; use Refaltor\PestPmmpTests\tests\PmmpTest; use SOFe\AwaitGenerator\Await; class TestTest extends PmmpTest { public function player_check_name_test(): Generator { $player = $this->getFakePlayer(); $this->assertString("FAKEPLAYER", $player->getName()); return yield Await::ALL; } public function player_check_name_error_test(): Generator { $player = $this->getFakePlayer(); $this->assertString("FAKEPLAYERRRRRR", $player->getName()); return yield Await::ALL; } public function onBeforeAllTest(): void { Main::getInstance()->getLogger()->info("Units test is starting..."); } public function onAfterAllTest(): void { Main::getInstance()->getLogger()->info("Units test is finish."); } }