Lzh on GitHub

升级到 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 增加了两个用于设置期望的新方法:allowsexpects。这意味着这些方法名现在被 Mockery “保留”,换句话说,你希望用 Mockery mock 的类,不能有名为 allowsexpects 的方法。

有关此 替代 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 版本发布以来,以下行为已更改:

  1. shouldIgnoreMissing() 行为可选地应用于 mock 对象,当调用的方法不匹配已知期望时,会返回 \Mockery\Undefined 实例。从 0.8.0 开始,该行为改为返回 null。你可以使用以下方式恢复 0.7.2 的行为:
    $mock = \Mockery::mock('stdClass')->shouldIgnoreMissing()->asUndefined();