cooperaj/behat-psr-extension

为Behat环境提供启动的PSR7应用程序和PSR11容器

v3.0.0-rc2 2022-10-20 22:41 UTC

README

CircleCI codecov psalm

Behat扩展允许您更轻松地测试您的PSR7 / 11 / 15应用程序,并允许您在测试时通过向运行的应用程序实例中注入模拟/替身/存根来在服务边界处隔离您的应用程序组件。

例如,您可能想要隔离来自Guzzle的出站HTTP调用并模拟其响应。这有时被称为白盒测试。

实现

这基于@ciaranmcnulty和他的behat-psr7extension的工作,通过将构建的PSR7应用程序注入到Behat环境中,同时注入负责该容器的PSR11容器。当发生这种情况时,您可以通过操作容器内容来修改运行的应用程序。

这的一个例子是用AWS模拟处理程序替换AWS处理程序,这允许您将AWS请求的模拟响应作为您上下文步骤定义的一部分。

如何使用

有关使用Mink与该扩展的详细说明,请参阅包含的FeatureContext.php

本质上

  1. 在您的Behat上下文文件中实现Psr11AwareContextPsr11MinkAwareContext
    1. Psr11AwareContext如果您正在进行基于“实现”的非UI交互。
    2. Psr11MinkAwareContext如果您想利用Mink进行基于浏览器的“验收”交互。
  2. 如果使用Psr11MinkAwareContext,提供了一个特性(Acpr\Behat\Psr\Context\RuntimeMinkContext),它实现了必要的Behat注入方法和行为。