0
私は私のユニットテスト内でこのようなコードを持っている:PHPUnitがこの関数を実行したと数えないのはなぜですか?
// $item_id was defined above
$originalMock = $this->getMock('Item', array('foo'), array(
$item_id
));
$originalMock->expects($this->once())->method('foo');
$originalMock->functionThatCallsFoo();
私がfunctionThatCallsFoo
& foo
が内から出てvar_dumpingされているにもかかわらず、全くfoo
を呼び出していないよと言っています。
公に呼び出された関数と私が期待している関数の間にはいくつかの関数呼び出しがあります。チェーンの下に呼び出される静的関数がないことを確認しました。
EDIT 私が直接functionThatCallsFoo
から呼び出されるメソッドを一致させるために、私のexpects
コールを変更し、それはまだ動作しませんでしたが(そこ最初にあったが、私はこれがすべてで働いて得ることができるかどうかを確認するためにそれらを変更しました)。
'getMock()'に模擬メソッドのリストを指定していません。 –
@MikeB "2番目の(オプションの)パラメータを指定すると、名前が配列内にあるメソッドだけが設定可能なテストdoubleに置き換えられます。2番目のパラメータは、配列( 'foo'他の方法の変更はありません。 http://www.phpunit.de/manual/3.6/en/test-doubles.htmlいくつかの中間関数があるのでクラス全体を模擬したかった –
はい、あなたの意図は 'fooの動作を変更することです) 'そう?クラス内の具体的な 'foo()'メソッドの呼び出しをカウントすることはできません。擬似/スタブ付きのメソッドだけです。 –