In meinem Projekt habe ich eine Klasse SessionManager, die Sitzungsvariablen für Sticky Forms etc. setzt und löscht. Jede Methode in dieser Klasse nimmt ein Silex \ Application-Objekt als Parameter. Wie kann ich diese Methoden testen? Erstellen Sie ein Silex-Anwendungsobjekt in jeder Testmethode? Ich bin neu bei Silex und Unit-Tests und bin mir nicht sicher, wie ich damit umgehen soll.Unit-Test-Methode mit Silex Application als Parameter
Beispiel eines Verfahrens:
public static function setMessage($message, $messageClass, Application &$app)
{
// store message as array, with content and class keys
$app['session']->set('message', array(
'content' => $message,
'class' => $messageClass
));
}
Müssen Sie wirklich die gesamte Anwendung bestehen? Es scheint, dass das Muster nicht wirklich gut ist. Sie sollten nur den Service/die Klasse übergeben, die Sie in Ihrer setMessage verwenden müssen. In Ihrem Fall sollten Sie die Sitzungsklasse bestehen. Wenn es sich bei der Injektion um eine "komplexe" Klasse handelt, sollten Sie bei der Prüfung des Geräts erwägen, von phpunit bereitgestellte Scheindaten zu verwenden. – olibiaz