Unit-Testing von GraphQL in Go mit testify
Im GraphQL-Schema definiert die Query-Struktur Vorgänge, die den Abruf von Daten und der Mutation-Struktur auslösen definiert Operationen, die den Zustand ändern. Beim Testen müssen Sie die Objekte nachahmen, die die tatsächlichen CRUD-Operationen ausführen, und sicherstellen, dass die erwarteten Aufrufe erfolgen.
Für das folgende Beispiel verwenden wir die Pakete testify und gqlgen/client:
graph/schema.graphql
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
graph/resolver/resolver.go
1 2 3 4 5 6 7 8 9 |
|
Services/user.go
1 2 3 4 5 6 |
|
graph/resolver/root.resolver.go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
Um die GraphQL-Anfragen und -Antworten zu simulieren, haben wir können Mock-Objekte für die Dienste erstellen:
mocks/userService.go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Schließlich können wir diese Mocks in unserer Testdatei importieren und verwenden Testen Sie unsere GraphQL-Resolver:
graph/resolver/root.resolver_test.go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
|
Dieser Test stellt sicher, dass die richtigen Aufrufe an die Servicemethoden erfolgen und dass die Antworten wie erwartet formatiert sind. Der Testabdeckungsbericht sollte die vollständige Abdeckung der Resolverfunktionen zeigen.
Das obige ist der detaillierte Inhalt vonWie teste ich GraphQL-Resolver in Go mit Testify und gqlgen/client?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!