Les proves d'integració són una part essencial del desenvolupament de qualsevol aplicació, incloent-hi les que utilitzen GraphQL. Aquest tipus de proves asseguren que els diferents components del sistema funcionen correctament quan es combinen. En aquest tema, aprendrem com configurar i executar proves d'integració per a un servidor GraphQL.
Objectius del tema
- Entendre què són les proves d'integració i per què són importants.
- Aprendre a configurar un entorn de proves d'integració per a un servidor GraphQL.
- Escriure i executar proves d'integració utilitzant eines populars com Jest i Apollo Server Testing.
Què són les proves d'integració?
Les proves d'integració verifiquen que diferents mòduls o serveis d'una aplicació funcionen correctament quan es combinen. A diferència de les proves unitàries, que aïllen i proven components individuals, les proves d'integració se centren en la interacció entre aquests components.
Importància de les proves d'integració
- Detecció de problemes d'interacció: Asseguren que els components funcionen correctament quan es combinen.
- Validació de fluxos de treball complets: Verifiquen que els fluxos de treball complets de l'aplicació funcionen com s'espera.
- Reducció de riscos: Minimitzen el risc de problemes en producció en detectar errors abans del desplegament.
Configuració de l'entorn de proves d'integració
Requisits previs
- Node.js i npm instal·lats.
- Un servidor GraphQL configurat (per exemple, utilitzant Apollo Server).
- Eines de proves com Jest i Apollo Server Testing.
Instal·lació de dependències
Primer, instal·lem les dependències necessàries:
Configuració de Jest
Afegim una configuració bàsica de Jest al nostre projecte. Creem un fitxer jest.config.js
a l'arrel del projecte:
Escriure proves d'integració
Exemple de servidor GraphQL
Suposem que tenim un servidor GraphQL senzill amb el següent esquema i resolvers:
const { ApolloServer, gql } = require('apollo-server'); const typeDefs = gql` type Query { hello: String } `; const resolvers = { Query: { hello: () => 'Hello, world!', }, }; const server = new ApolloServer({ typeDefs, resolvers }); module.exports = server;
Prova d'integració amb Jest i Apollo Server Testing
Creem un fitxer de prova integration.test.js
a la carpeta tests
:
const { createTestClient } = require('apollo-server-testing'); const server = require('../server'); // Assegura't que el camí sigui correcte const { query } = createTestClient(server); describe('GraphQL Integration Tests', () => { it('should return hello world', async () => { const HELLO_QUERY = ` query { hello } `; const res = await query({ query: HELLO_QUERY }); expect(res.data.hello).toBe('Hello, world!'); }); });
Explicació del codi
- createTestClient: Aquesta funció de
apollo-server-testing
crea un client de prova per al nostre servidor Apollo. - query: Utilitzem el client de prova per executar una consulta GraphQL.
- HELLO_QUERY: Definim la consulta GraphQL que volem provar.
- expect: Utilitzem Jest per verificar que la resposta de la consulta és la que esperem.
Executar les proves
Per executar les proves, simplement utilitzem el comandament de Jest:
Si tot està configurat correctament, hauríem de veure que la prova passa amb èxit.
Errors comuns i consells
Errors comuns
- Configuració incorrecta de Jest: Assegura't que el fitxer
jest.config.js
està configurat correctament. - Camins incorrectes: Verifica que els camins als fitxers són correctes.
- Dependències no instal·lades: Assegura't que totes les dependències necessàries estan instal·lades.
Consells
- Utilitza mocks per a dependències externes: Si el teu servidor GraphQL depèn de serveis externs, considera utilitzar mocks per a aquests serveis durant les proves.
- Prova diferents escenaris: No et limitis a provar els casos feliços. Prova també escenaris d'error i casos límit.
Resum
En aquest tema, hem après què són les proves d'integració i per què són importants. Hem configurat un entorn de proves d'integració per a un servidor GraphQL utilitzant Jest i Apollo Server Testing, i hem escrit i executat una prova d'integració bàsica. Les proves d'integració són una eina poderosa per assegurar que els diferents components de la teva aplicació funcionen correctament quan es combinen, ajudant a detectar problemes abans que arribin a producció.
En el següent tema, explorarem la integració contínua i com automatitzar les proves i el desplegament del nostre servidor GraphQL.
Curs de GraphQL
Mòdul 1: Introducció a GraphQL
- Què és GraphQL?
- GraphQL vs REST
- Configuració d'un servidor GraphQL
- Conceptes bàsics de l'esquema de GraphQL
Mòdul 2: Conceptes bàsics
Mòdul 3: Disseny avançat d'esquemes
Mòdul 4: Treballant amb dades
- Connexió a una base de dades
- Estratègies de recuperació de dades
- Agrupació i emmagatzematge en memòria cau
- Gestió d'errors
Mòdul 5: Rendiment i seguretat
Mòdul 6: Eines i ecosistema
Mòdul 7: Proves i desplegament
- Proves unitàries de resolvers
- Proves d'integració
- Integració contínua
- Desplegament de servidors GraphQL