gpt4 book ai didi

Cypress w/graphql - 在通过 UI 进行测试时遇到问题。 stub 突变的更好方法?

转载 作者:行者123 更新时间:2023-12-04 14:55:03 26 4
gpt4 key购买 nike

因此,如果我在真空中测试页面而没有与后端进行太多交互,那么它会非常有效。如果遇到任何类型的服务,我在与我的 UI 进行实际交互时遇到问题。基本上,没有什么是 Auth'd。我尝试以编程方式设置Cookie,没有骰子。我试着读 cookies ,不。顺便说一句,我的整个网站都需要登录。

cy.setCookie('sess', ';askjdfa;skdjfa;skdjfa;skdjfa;skfjd');<-- does not work

cy.getCookie('sess').should('exist') <-- does not work

我对“测试”这个的最佳方式有疑问。例如,我有一个帐户部分,用户可以“更新”他们的个人信息。我尝试,填写表格(通过 UI 测试),但提交被拒绝,没有 Auth。即使我刚刚登录(通过 UI 测试)。 - 我知道我需要删除它,因为对我网站的每个部分进行 UI-Login 是一种不好的做法。

所以,我不知道如何使用 cy.request() stub graphql 调用。这是我的突变。

mutation Login($email: Email!, $password: String!) {
login(email: $email, password: $password) {
userID
firstName
lastName
}
}
  1. 现在,我正在为我正在测试的站点的每个部分导入登录规范。我知道这是一种反模式。喜欢解决这个问题。

  2. 我的 AUTH (cookie) 未设置。即使我尝试以编程方式设置它也不起作用。

  3. 也许我应该删除我的 graphql 突变?怎么样?

  4. 最后,如果我要删除我的 graphql 突变,我该如何更新 session (通过我的主 session 查询)。如果我能让这些突变发挥作用,那么刷新页面将获得我的更新数据,所以我并不完全需要这部分。

有什么想法吗?

最佳答案

我没有做 stub 和所有那些,因为你在我的另一篇文章中询问突变如何与 cy.request 一起工作。我是这样做的,它基本上可以工作。希望这会有所帮助

我首先创建了一个 const

export const join_graphQL = (query, extra={}) => {
return `mutation {
${query}(join: { email: "${extra.email}", id: "${extra.id}" }) {
id, name, email
}
}`
};

请求配置 const

export const graphqlReqConfig = (body={}, api=graphQlapi, method='POST') => {
return {
method,
body,
url: api,
failOnStatusCode: false
}
};

使用 cy.request

进行变异查询
const mutationQuery = join_graphQL('mutationName', {
email: "email",
id: 38293
});

cy.request(graphqlReqConfig({
query: mutationQuery
})).then((res) => {
const data = res.body.data['mutationName']; // your result
});

希望它不会太乱。

基本上这些字段需要是字符串,例如 "${extra.email}" 否则它会给你错误。不确定 graphql 是如何深入工作的,但如果我只是这样做 ${extra.email} 我会收到一个错误,我忘记了它是什么错误。

关于Cypress w/graphql - 在通过 UI 进行测试时遇到问题。 stub 突变的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51012988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com