2017-03-01 58 views
0

我開發了一個帶有自定義解析器的graphql節點js應用程序。任何人都可以向我指出一些文檔,說明如何正確編寫我的服務的單元測試?或者如果有人已經做到了,並且可以指出我將朝着正確的方向邁進!GraphQL Node JS應用程序的單元測試

回答

0

爲了測試您服務的每個端點,您需要對指定的URL執行POST操作,並使用適當的有效負載。有效載荷應該是包含三個屬性

  • 查詢中的對象 - 這是將在服務器側
  • operationName運行的GraphQL查詢 - 從查詢操作來運行
  • 變量名 - 使用在查詢

爲了測試你的終點,你可以使用模塊像supertest,使您可以像GET執行請求,POSTPUT

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 
    }); 

在這樣就可以測試每個querymutation您服務方式包括通過執行POST請求具有正確的屬性相當於postData對象。要將所有這些測試包裝在一起,您可以使用任何測試框架,使用斷言庫在Node.js下工作,如Mocha