我目前正在Cypress上为用react和redux和redux-saga编写的应用程序编写测试。对于我的测试之一,我试图对请求进行存根并返回一个响应,该响应期望代码应为JSON的“字符串化”数组,以便稍后可以对其进行解析。
我尝试使用JSON.stringify([desiredResponse])在cy.route()命令中指定响应,但这种方法不起作用,响应一直被Cypress或其他中间件解析,然后再进入传奇。
我也尝试过在onResponse选项中拦截响应,但是在我看来,响应交付后就正在执行(不确定这一点,仅进行了一些模糊测试)
// This is how my cy.route() config looks like
cy.route({
method: 'POST',
url: 'someUrl',
response: JSON.stringify([myResponse]),
});
在我的传奇故事中:
// I call the url via axios and immediately after I try to parse it
try {
const parsed = JSON.parse(response.data);
} catch (err) {
const parsed = [];
}
我希望我在传奇故事中的回答像是:“ [myResponse]”,但我得到了原始数组
答案 0 :(得分:0)
出于好奇:您是否尝试过将[myResponse]
包装到JSON.stringify()
中?
类似
cy.route({
method: 'POST',
url: 'someUrl',
response: [myResponse],
});
无论如何:在我的应用中,根据您的实际情况,我与您的代码的唯一区别是我利用了Cypress fixtures。
您可以使用简化的代码共享一个简单的GitHub存储库吗?