使用
PHPUnit\Framework\TestCase
类运行单元测试的 Laravel 项目。为了创建模拟,它有时使用内置的 PHPUnit Api。例如
$this->mock = $this->getMockBuilder(ClassToMockName::class)
->disableOriginalConstructor()
->onlyMethods(["this", "that", "theOtherMethodName"])
->getMock();
其他时候它使用 Mockery 库,例如
$this->mock = \Mockery::mock(ClassToMock::class)->makePartial();
这些方法只是两种不同的模拟方法吗?各有什么优缺点?
在这个主题上找不到太多内容,除了像用于嘲笑的提示这样的文章,这些文章没有解释是什么让一个人比另一个人更受欢迎。
它可能正在使用 Mockery,以便可以对您正在测试的方法中的静态方法调用进行存根。 PHPUnit 不支持这个。