Dependency injection not working during tests
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Beginne mit dem UserController-Test und dem im Issue gezeigten Dependency-Injection-Setup und verfolge dann, wie QueryService während des Tests aufgelöst wird. Reproduziere den fehlgeschlagenen Mock-Aufruf und vergleiche den vom Controller verwendeten Container mit dem Container, der geändert wird. Als erledigt gilt die Aufgabe, wenn der Controller den gemockten QueryService erhält und der Test das erwartete zurückgegebene Objekt verifiziert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Hello guys. I have a controller called UserController. And i have a UserService that call getById method that returns some object. How can i mock this call when i test UserController?
I tries this code
` /** @var \Hyperf\Di\Container $c */
$c = \Hyperf\Utils\ApplicationContext::getContainer();
$queryServiceMock = $this->createMock(QueryService::class);
$queryServiceMock->method('appByKeyAndDomain')->willReturn((object)[
'id' => 1,
'key' => 'test',
'timezone' => 'UTC'
]);
$c->set(QueryService::class, $queryServiceMock);
\Hyperf\Utils\ApplicationContext::setContainer($c);`
but it would not work.
- Vorherrschende Sprache
- PHP
- Sterne
- 307
- Forks
- 131
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus hyperf/hyperf-skeleton
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 30/100
hyperf/hyperf-skeleton#106 · 1 Kommentar ·
Alle Issues in hyperf/hyperf-skeleton
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 91/100
benjaminkott/bootstrap_package#1675 ·
-
sync-en
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
Maintainer antworten meist innerhalb von 1 Tag