class Foo {
public function method() {
}
public function bar() {
}
}
私はクラスFoo
を持っている場合、私は以下の構文を使用してbar
の動作を変更することができます。名前が「メソッド」のメソッドをモックアップする方法はありますか?
$stub = $this->createMock(Foo::class);
$stub->expects($this->any())
->method('bar')
->willReturn('baz');
制限:元のクラスは、「メソッド」という名前のメソッドを宣言していないとき、「法」という名前のメソッドが唯一の上に示された例は に動作します。 元のクラスが "method"というメソッドを宣言している場合、 $ stub-> expects($ this-> any()) - > method( 'doSomething') - > willReturn( 'foo'); を使用する必要があります。
https://phpunit.de/manual/current/en/test-doubles.html#test-doubles.stubs
しかし、私の質問は、どのように私はPHPUnitのFoo::method()
の動作を変更することができますか?出来ますか?
PHPUnitはオープンソースなので、可能です。あなたがそれをフォークして自分で変更する必要があります。私はこれはあなたの質問ではないと思う、あなたの質問の範囲を狭くする気になるだろうか? – Dezza
@Dezza PHPUnitを使って'Foo :: method'の動作をどうやって変更できますか? PHPUnitは現在そのような方法を提供していますか? – cither
あなたの質問で '$ stub-> expects($ this-> any()) - > method( 'method') - > willReturn( 'foo')' – Dezza