使用 Cypress .request 调用 GraphQL 端点
Call GraphQL endpoints using Cypress .request
我用谷歌搜索了 cypress request with graphql
,但我看到很多人提到 mock up server
、stub
等等。但是我无法找到如何将 GraphQL 与 cy.request.
一起使用的完整示例
也许你可以在使用 cy.request
时尝试这个,就像你在 cy.request
中使用 restful
的通常方式一样
例如您的查询名称是 findUser
,变量为 username
您的查询应该类似于 findUser(username:"hello"){id, name}
等等
但不只是这个,你需要将它作为 json
传递,如果它是一个查询,那么它将是 {"query": findUser(username:"hello"){id, name}}
这实际上是你的 body.
示例如下...
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);
});
我添加 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);
});
我用谷歌搜索了 cypress request with graphql
,但我看到很多人提到 mock up server
、stub
等等。但是我无法找到如何将 GraphQL 与 cy.request.
也许你可以在使用 cy.request
时尝试这个,就像你在 cy.request
restful
的通常方式一样
例如您的查询名称是 findUser
,变量为 username
您的查询应该类似于 findUser(username:"hello"){id, name}
等等
但不只是这个,你需要将它作为 json
传递,如果它是一个查询,那么它将是 {"query": findUser(username:"hello"){id, name}}
这实际上是你的 body.
示例如下...
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);
});
我添加 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);
});