我是PHPUnit中的新手,并重写我的老式单元测试以使用它.我认识到框架的附加价值,使测试更具可读性,更简单,生成报告,自动化...但我仍然对模拟/存根功能存在分歧.它们是否真的有用,因为我们可以在PHP7中使用匿名类?
例如,是:
$stub = $this->createMock(SomeClass::class); $stub->method('doSomething') ->willReturn('foo');
真的应该比以下更优雅/可读/简单:
$stub = new class extends SomeClass { protected function doSomething() { return 'foo'; } };
在我看来,对于不了解框架的开发人员来说,第二个命题更具可读性和可访问性.
是否还有充分的理由使用此功能?
换句话说,我可以用PHPUnit的模拟/存根函数做些什么我不能使用匿名类吗?或者是偏好/用例问题?