cooperaj / behat-psr-extension
为Behat环境提供启动的PSR7应用程序和PSR11容器
v3.0.0-rc2
2022-10-20 22:41 UTC
Requires
- php: ^8.1
- friends-of-behat/mink-browserkit-driver: ^1.6.1
- friends-of-behat/mink-extension: ^2.4
- symfony/http-foundation: ^5.1
- symfony/http-kernel: ^5.1
- symfony/psr-http-message-bridge: ^2.0
Requires (Dev)
- behat/behat: ^3.5
- infection/infection: >=0.15
- laminas/laminas-config-aggregator: ^1.1
- laminas/laminas-diactoros: ^2.2
- laminas/laminas-servicemanager: ^3.4
- mezzio/mezzio: ^3.2
- mezzio/mezzio-fastroute: ^3.0
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.0
- psalm/plugin-phpunit: ^0.16.1
- vimeo/psalm: ^4.8
This package is auto-updated.
Last update: 2024-09-21 03:18:56 UTC
README
此Behat扩展允许您更轻松地测试您的PSR7 / 11 / 15应用程序,并允许您在测试时通过向运行的应用程序实例中注入模拟/替身/存根来在服务边界处隔离您的应用程序组件。
例如,您可能想要隔离来自Guzzle的出站HTTP调用并模拟其响应。这有时被称为白盒测试。
实现
这基于@ciaranmcnulty和他的behat-psr7extension的工作,通过将构建的PSR7应用程序注入到Behat环境中,同时注入负责该容器的PSR11容器。当发生这种情况时,您可以通过操作容器内容来修改运行的应用程序。
这的一个例子是用AWS模拟处理程序替换AWS处理程序,这允许您将AWS请求的模拟响应作为您上下文步骤定义的一部分。
如何使用
有关使用Mink与该扩展的详细说明,请参阅包含的FeatureContext.php
本质上
- 在您的Behat上下文文件中实现
Psr11AwareContext
或Psr11MinkAwareContext
。Psr11AwareContext
如果您正在进行基于“实现”的非UI交互。Psr11MinkAwareContext
如果您想利用Mink进行基于浏览器的“验收”交互。
- 如果使用
Psr11MinkAwareContext
,提供了一个特性(Acpr\Behat\Psr\Context\RuntimeMinkContext
),它实现了必要的Behat注入方法和行为。