有没有在PHPUnit中同时模拟几个方法的简写方法?

时间:2017-03-16 20:27:11

标签: mocking phpunit

假设我有这个:

$mock = $this->createMock(\MyClass::class);
$mock->method('foo')
  ->willReturn('data');
$mock->method('bar')
  ->willReturn('data');

是否有简写说这两种方法(或更多)会返回相同的东西?

1 个答案:

答案 0 :(得分:2)

已配置模拟

您可以使用 TestCase 类的createConfiguredMock($originalClassName, array $configuration)方法:

$this->createConfiguredMock(\MyClass::class, [
    'foo' => 'data',
    'bar' => 'data'
]);

您仍需要为每个方法指定返回值,但这是我所知道的PHPUnit提供的最佳简写。

但您可以生成配置数组,如下所示:

$this->createConfiguredMock(\MyClass::class, array_fill_keys([
    'foo',
    'bar'
], 'data'));