hafriedlander / silverstripe-phockito
将 Phockito(一个PHP模拟框架)与 SilverStripe 集成
1.0.0
2013-10-24 21:27 UTC
Requires
This package is not auto-updated.
Last update: 2024-09-09 14:50:22 UTC
README
Phockito 生成模拟或间谍类下属的子类。这在与 SilverStripe 集成时效果不佳,因为 SilverStripe 会构建一个类清单并在执行期间期望它们保持静态。
本模块提供了 SilverStripe 和 Phockito 之间的集成,因此每次您使用 Phockito 创建模拟或间谍时,它都会在 SilverStripe 的 ClassManifest 中注册。
这一切都是自动发生的,所以您无需担心,只需将此模块添加到您的 composer.json 中,然后在测试中开始调用 Phocktio::mock 或 Phockito::spy 即可。
如果您调用 Phockito::include_hamcrest()
来使用 Hamcrest 匹配器,例如 anything()
,请记住将其限制在测试执行中,通过将其放置在 setUpOnce()
中。将其放在类作用域之外,并在 PHP 文件首次由 PHP 包含时执行包含调用,可能会与 PHPUnit 的内置匹配器冲突。为了避免冲突,还应避免自行包含这些匹配器(PHPUnit\Framework\Assert\Functions.php
)。
<?php class MyTest extends SapphireTest { public function setUpOnce() { if (class_exists('Phockito')) { Phockito::include_hamcrest(); } parent::setUpOnce(); } }