hafriedlander / silverstripe-phockito

将 Phockito(一个PHP模拟框架)与 SilverStripe 集成

安装次数: 34,292

依赖者: 2

建议者: 0

安全: 0

星标: 4

关注者: 3

分支: 6

开放问题: 5

类型:silverstripe-module

1.0.0 2013-10-24 21:27 UTC

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();
	}

}