2017-09-27 3 views
0

Ich habe eine schlechte Situation, wo eine Klasse, die ich testen möchte, eine andere Klasse erweitert, die eine ziemlich komplexe public static Methode hat. Dies wäre kein Problem, wenn die Elternklasse keine anderen Klassen erweitern würde. Genauer gesagt, ich brauche \Illuminate\Database\Eloquent\Model, um noch erweitert zu werden. Meine Hände sind in Bezug auf mögliche Refactor gebunden, um es einfacher zu testen.PHPUnit - Wie stub ich die gesamte Elternklasse?

Gibt es eine Möglichkeit, die Eltern der betreffenden Klasse zu stubben oder zu ändern, während die Model-Klasse weiterhin ausgeführt werden kann?

Antwort

2

Vielleicht könnten Sie eine YourClassTestCase erstellen, die die zu testende Klasse erweitert. Dann, in YourClassTestCase Override statische Methode mit einer vereinfachten Rückkehr und starten Sie den Test über YourClassTestCase.

So haben Sie YourTest ->yourClassTestCase ->YourClass ->ParentWithStaticMethod.

0
+0

Standard-Mocks machen das hier nicht. Ich muss einen Weg finden, um die Elternklasse vollständig zu stubben, während ich den Großelternteil behalte, oder einen Weg finde, den Elternteil durch einen anderen Elternteil zu ersetzen. Der Versuch, die einzelne statische Methode im Parent zu stubben, würde funktionieren, wenn ich den Gültigkeitsbereich von "Alias" auf nur den Elternteil beschränken könnte. –

Verwandte Themen