Ich habe eine Frage, als ich Unit-Test meine Anwendung war. Ich habe eine Methode, die eine Abhängigkeit erfordert, aber nur diese Methode braucht es, also dachte ich, sie nicht durch construct zu injizieren, sondern mit App :: make() der IoC-Container-Klasse zu initialisieren. Aber wie kann ich das testen?Wie man App :: make() auf UnitTesting Laravel 4 simuliert
Lasst uns ein kleines Beispiel sagen für verstehen, wie Sie Gerät diese Funktion beispiel Prüfung
class Example {
public function methodToTest()
{
$dependency = App::make('Dependency');
return $dependency->method('toTest');
}
}
-Test
public function test_MethodToTest() {
$dependency = m::mock('Dependency');
$dependency->shouldReceive('method')->once()->with('toTest')->andReturn(true);
$class = new Example();
$this->assertTrue($class->methodToTest('toTest')); // does not work
}
Genau! Es funktioniert, Danke! :) – Fabrizio
Es funktioniert, aber mit getMock() '$ Abhängigkeit-> getMock()' –
Nein. Wenn Sie $ Abhängigkeit-> getMock() direkt verwenden, testen Sie nur, dass der Schein richtig eingerichtet wurde, nicht das Das methodToTest() der Example-Klasse wird wie erwartet aufgerufen. Wenn $ class-> methodToTest() nicht für Sie funktionierte, empfehle ich, die Art und Weise zu betrachten, wie Ihr Äquivalent der Example-Klasse eingerichtet wurde. – petercoles