Ich schreibe einige Testfälle, und ich habe einen Testfall, der Mock-Objekte verwendet. Ich muss überprüfen, ob zwei Klassenmethoden von einer anderen Klassenmethode aufgerufen werden. Hier ist, was ich getan habe:SimpleTest Mocking Problem
Zuerst habe ich die Mock generiert:
Mock::generate('Parser');
Dann in meinem Test habe ich genannt:
$P = new MockParser();
$P->expectOnce('loadUrl', array('http://url'));
$P->expectOnce('parse');
$P->fetchAndParse('http://url');
Meine Implementierung Code wie folgt aussieht:
public function fetchAndParse($url) {
$this->loadUrl($url);
$this->parse();
}
Und die loadUrl und parse() Methoden sind definitiv vorhanden. Ich erhalte bei meinen Tests zwei Fehler, die mir beide sagen: "Die erwartete Anrufzahl für [loadUrl] war [1] hat [0]". Ich habe keine Ahnung, was passiert - die Methoden werden von dieser Funktion aufgerufen!
Danke,
Jamie
Das ist wirklich hilfreich - es bedeutet, dass ich ziemlich viel Code ändern muss, aber zumindest weiß ich jetzt, was vor sich geht! Vielen Dank! –