tienvx / laravel-pact-provider
Laravel的Pact提供者集成
v0.2.0
2024-04-01 17:25 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^10|^11
- illuminate/http: ^10|^11
- illuminate/routing: ^10|^11
- illuminate/support: ^10|^11
- illuminate/validation: ^10|^11
Requires (Dev)
- orchestra/testbench: ^8.22
- phpunit/phpunit: ^10.1
- squizlabs/php_codesniffer: ^3.7.2
README
此Laravel包允许使用Pact PHP测试Laravel项目。它支持
- 验证发送消息
- 设置提供者状态
- 拆解提供者状态
安装
composer require tienvx/laravel-pact-provider
文档
注册状态处理器
namespace App\StateHandler; use Tienvx\PactProvider\Attribute\AsStateHandler; use Tienvx\PactProvider\Model\StateValues; use Tienvx\PactProvider\StateHandler\SetUpInterface; use Tienvx\PactProvider\StateHandler\TearDownInterface; #[AsStateHandler(state: 'A user with id dcd79453-7346-4423-ae6e-127c60d8dd20 exists')] class UserHandler implements SetUpInterface, TearDownInterface { public function setUp(array $params): ?StateValues { return new StateValues([ 'id' => 123, ]); } public function tearDown(array $params): void { } }
app()->bind(UserHandler::class);
注册消息调度器
namespace App\MessageDispatcher; use Tienvx\PactProvider\Attribute\AsMessageDispatcher; use Tienvx\PactProvider\Model\Message; use Tienvx\PactProvider\MessageDispatcher\DispatcherInterface; #[AsMessageDispatcher(description: 'User created message')] class UserDispatcher implements DispatcherInterface { public function dispatch(): ?Message { } }
app()->bind(UserDispatcher::class);