我正在使用react-apollo进行GraphQL查询,而我正在使用Cypress进行测试。
问题在于,这2位球员似乎表现不佳。阿波罗似乎正在通过Fetch API发出所有请求。
但是Cypress似乎无法捕获任何东西,除了XHR请求。
那我该怎么做才能解决这个问题?赛普拉斯有没有办法捕获“获取”请求?有没有办法让react-apollo使用“ xhr”而不是“ fetch”?
答案 0 :(得分:0)
您只需将其传递给您的schema
:
const schema = fs.readFileSync('../../app-schema.graphql', 'utf8');
// alternatively, using a dumped introspection query:
// const schema = require('../../dumped-schema.json')
beforeEach(() => {
cy.server();
cy.mockGraphql({ schema });
});
答案 1 :(得分:0)
一个简单的解决方法是使用whatwg-fetch
,您可以通过npm将其添加为依赖项,然后...
cypress / support / fetch_to_xhr.js
function fetchToXhr() {
let polyfill
before(() => {
cy.readFile('node_modules/whatwg-fetch/dist/fetch.umd.js')
.then((contents) => polyfill = contents)
Cypress.on('window:before:load', (win) => {
delete win.fetch
win.eval(polyfill)
})
})
}
fetchToXhr()
cypress / support / index.js
import "./fetch_to_xhr";
那次赛普拉斯将捕获graphql请求