2017-03-01 10 views
0

カスタムリゾルバを持つgraphqlノードjsアプリケーションを開発しました。誰かが私のサービスの単体テストを正しく記述する方法を示すいくつかの文書を私に指摘できますか?または誰かがそれを前にやっていると私が正しい方向に向けることができればそれは素晴らしいだろう!GraphQLノードのユニットテストJS App

答えて

0

サービスの各エンドポイントをテストするには、適切なペイロードで指定されたURLに対してPOST操作を実行する必要があります。ペイロードは、3つの属性

  • クエリを含むオブジェクトでなければなりません - 使用 -
  • 変数を実行するクエリからの操作の名前 - これは、サーバー側
  • のoperationName上で実行されますGraphQLクエリですあなたはGETPOSTのような要求を実行することができますsupertestのようなモジュールを使用することができ、あなたのエンドポイントを試験するために、クエリ

で、PUTなど

01あなたはすべての querymutationあなたのサービスをテストすることができ、このような方法で
import request from 'supertest'; 

let postData = { 
    query: `query returnUser($id: Int!){ 
       returnUser(id: $id){ 
        id 
        username 
        email 
       } 
      }`, 
    operationName 'returnUser', 
    variables: { 
     id: 1 
    } 
}; 

request(graphQLEndpoint) 
    .post('?') 
    .send(postData) 
    .expect(200) // status code that you expect to be returned 
    .end(function(error, response){ 
     if (error) console.log(error); 

     // validate your response 
    }); 

は、適切な属性を持つ同等のpostDataオブジェクトとPOSTリクエストを実行することにより、含まれています。これらのテストをまとめてラップするには、アサーションライブラリを使用してMochaのようなNode.jsで動作するテストフレームワークを使用できます。