Trait ContainerStubTrait
一组用于在测试用例中定义容器服务的方法。
此特性利用 Application.buildContainer
事件将模拟服务注入应用程序使用的容器。
命名空间: Cake\Core\TestSuite
属性摘要
-
$_appArgs protected
array|null
自定义应用程序构造函数参数。
-
$_appClass protected
string|null
自定义应用程序类名称。
方法摘要
-
cleanupContainer() public
清除任何已定义的模拟并清理应用程序类配置。
-
configApplication() public
配置用于集成测试的应用程序类。
-
createApp() protected
创建应用程序实例。
-
mockService() public
向容器添加模拟服务。
-
modifyContainer() public
用包含模拟的容器包装应用程序的容器。
-
removeMockService() public
从容器中移除模拟服务。
方法详情
configApplication() ¶ public
configApplication(string $class, array|null $constructorArgs): void
配置用于集成测试的应用程序类。
参数
-
string
$class 应用程序类名称。
-
array|null
$constructorArgs 应用程序类的构造函数参数。
返回值
void
createApp() ¶ protected
createApp(): Cake\Core\HttpApplicationInterfaceCake\Core\ConsoleApplicationInterface
创建应用程序实例。
使用 configApplication()
中设置的配置。
返回值
Cake\Core\HttpApplicationInterfaceCake\Core\ConsoleApplicationInterface
mockService() ¶ public
mockService(string $class, Closure $factory): $this
向容器添加模拟服务。
当创建容器时,提供的类名将映射到工厂函数。工厂函数将用于创建模拟服务。
参数
-
string
$class 要定义的类或接口。
-
Closure
$factory 模拟服务的工厂函数。
返回值
$this
modifyContainer() ¶ public
modifyContainer(Cake\Event\EventInterface $event, Cake\Core\ContainerInterface $container): void
用包含模拟的容器包装应用程序的容器。
如果定义了任何模拟服务,应用程序的容器将被替换为包含模拟的容器。原始容器将被设置为模拟容器的委托。
参数
-
Cake\Event\EventInterface
$event 事件
-
Cake\Core\ContainerInterface
$container 要包装的容器。
返回值
void
removeMockService() ¶ public
removeMockService(string $class): $this
从容器中移除模拟服务。
参数
-
string
$class 要移除的类或接口。
返回值
$this