我们能用cy.request调用graphql吗? cypress.io

时间:2018-04-23 19:03:10

标签: javascript unit-testing graphql graphql-js cypress

我搜索了cypress request with graphql之类的内容,但我看到很多人都在谈论mock up serverstub等等。但是,我无法使用cypress.io使用graphql找到如何使用cy.request的完整示例。

有没有人知道这个graphql如何与collections.Counter一起使用,或者我在哪里可以找到它的工作原理?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

也许你可以在使用cy.request时尝试这种方式,就像在restful

中使用cy.request一样

示例您的查询名称为findUser,变量为username 您的查询应该类似于findUser(username:"hello"){id, name}等等

但不是这样,你需要将其作为json传递,如果它是一个查询,那么它将{"query": findUser(username:"hello"){id, name}}这实际上就是你的身体。

以下是一个例子......

    const query = `{
        findUser(username:"hello")
        {
            id
        }
    }`;

    cy.request(
        {
            url: 'http://localhost/graphql/',  // graphql endpoint
            body: { query },  // or { query: query } depending if you are writing with es6
            failOnStatusCode: false  // not a must but in case the fail code is not 200 / 400
        }
    ).then((res) => {
        cy.log(res);
    })

答案 1 :(得分:0)

一旦我添加了method: "post"

,所选的答案就对我有用
const query = `
  query getItems {
    items {
      items {
        id
      }
    }
  }
`;

cy.request({
  method: "post",
  url: 'http://localhost:4000/graphql',
  body: { query },
}).then((res) => {
  console.log(res.body);
});