升级
升级到 1.0.0
最低 PHP 版本
从 Mockery 1.0.0 开始,所需的最低 PHP 版本为 5.6。
与 PHPUnit 一起使用 Mockery
在 “过去”,0.9.x 及更早版本中,Mockery 与 PHPUnit 的集成是通过 PHPUnit 监听器完成的。该监听器会为我们调用 \Mockery::close() 方法。
从 1.0.0 开始,如果希望在 PHPUnit 测试用例中使用 Mockery,应使用 \Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration trait,或继承 \Mockery\Adapter\Phpunit\MockeryTestCase 测试用例。这将为我们调用 \Mockery::close() 方法。
有关 PHPUnit 集成 的详细概述,请参阅文档。
\Mockery\Matcher\MustBe 已弃用
从 1.0.0 开始,\Mockery\Matcher\MustBe 匹配器已弃用,并将在 Mockery 2.0.0 中移除。我们建议改用 PHPUnit 对应的 MustBe 匹配器。
allows 和 expects
从 1.0.0 开始,Mockery 增加了两个用于设置期望的新方法:allows 和 expects。这意味着这些方法名现在被 Mockery “保留”,换句话说,你希望用 Mockery mock 的类,不能有名为 allows 或 expects 的方法。
有关此 替代 shouldReceive 语法 的更多信息,请参阅文档。
不再对字符串参数进行隐式正则匹配
在方法期望中设置字符串参数时,Mockery 0.9.x 及更早版本会在 “最后尝试” 场景中使用正则表达式匹配参数。
从 1.0.0 开始,Mockery 不再尝试这种正则匹配,而是首先尝试使用全等运算符 ===,失败后使用等于运算符 ==。
如果你想使用正则匹配参数,请使用新的 \Mockery\Matcher\Pattern 匹配器。有关此模式匹配器的更多信息,请参阅文档中的 参数验证 部分。
andThrow \Throwable
从 1.0.0 开始,andThrow 现在可以抛出任何 \Throwable。
升级到 0.9
生成器已完全重写,因此任何与 Mockery 深度集成的代码都需要评估。
升级到 0.8
自 0.8.0 版本发布以来,以下行为已更改:
shouldIgnoreMissing()行为可选地应用于mock对象,当调用的方法不匹配已知期望时,会返回\Mockery\Undefined实例。从 0.8.0 开始,该行为改为返回null。你可以使用以下方式恢复 0.7.2 的行为:$mock = \Mockery::mock('stdClass')->shouldIgnoreMissing()->asUndefined();