gpt4 book ai didi

javascript - 如何修复 cy.route() 数据类型响应问题?

转载 作者:行者123 更新时间:2023-11-30 06:13:53 25 4
gpt4 key购买 nike

我尝试使用 Cypress.io cy.route() 来管理网络请求的行为。编写了一个 stub 来替换应用程序的网络行为以测试 UI。

预期结果是后端返回JSON格式的字符串类型的响应。引号或双引号不应出现在括号外。

预期结果示例:

{"mockdata":"mock"}

但是,我的应用程序在测试期间一直返回对象类型的响应,比如

{mockdata:"mock"}

如何让 Mock API 返回字符串类型的响应?谢谢。

下面附上我的测试代码:

context('mock API', function () {
before(function () {
cy.server()
cy.route({
method: 'POST',
url: '/category/menu',
response: '{"mockdata":"mock"}'
}).as('rootBlock')

}
it('use mock API', function () {
cy.visit('/')
cy.wait('@rootBlock')
})

}

还有我的APP使用JQuery的示例代码:

$.ajax({
url: '/category/menu',
type: 'POST',
success: function (json) {
console.log(typeof json)
// Expect String to be returned
// but it always return as Object during a cypress test
var jsonData = $.parseJSON(json).mockdata
// throwing errors...
}
});

我的系统是:Win7 x64

node.js: v10.14.1

Cypress.io:v3.4.1

最佳答案

您的模拟尝试自动将您的响应转换为 JSON 对象(应该如此)。

如果你想返回一个字符串,你应该将你的对象字符串化:

响应:JSON.stringify({"mockdata":"mock"}) 应该有效。

你也可以添加一个标题属性:

header: {
'Content-Type': 'text/html'
},

但在你的情况下它不应该是强制性的

您还可以查看那里的文档: https://docs.cypress.io/api/commands/route.html

关于javascript - 如何修复 cy.route() 数据类型响应问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57323653/

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