いくつかのテスト ケースを書いていますが、モック オブジェクトを使用しているテスト ケースがあります。2 つのクラス メソッドが別のクラス メソッドから呼び出されているかどうかを確認する必要があります。これが私がやったことです:
まず、モックを生成しました。
Mock::generate('Parser');
次に、テスト内で次のように呼び出しました。
$P = new MockParser();
$P->expectOnce('loadUrl', array('http://url'));
$P->expectOnce('parse');
$P->fetchAndParse('http://url');
私の実装コードは次のようになります。
public function fetchAndParse($url) {
$this->loadUrl($url);
$this->parse();
}
そして、loadUrl および parse() メソッドは間違いなく存在します。テストで 2 つのエラーが発生しました。どちらも「[loadUrl] の予想される呼び出し回数は [1] で [0] になりました」というメッセージが表示されます。何が起こっているのかわかりません - メソッドはその関数から呼び出されています!
ありがとう、
ジェイミー