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