如何使用有效负载获取模拟 post 请求
How do I fetch-mock a post request with a payload
我正在使用 wheresrhys fetch-mock npm 模块 运行 在我的应用程序中进行功能测试。我想用方法 'POST' 和特定的有效负载来模拟获取。
看起来像这样:
fetchMock.mock({
routes: {
name: 'LoginSuccess',
matcher: "https://myurl",
method: 'POST',
payload: {
params:{User: "ABCDE@gmail.com", Password: "password"}
},
response: {
result:{
message: "Successful login",
credentials: "XXXXXXXXXXXXX"
}
}
}
});
我想检查我的抓取的有效负载并给出相应的响应。例如,我可以模拟一个用户提交错误密码的登录,然后他们再次尝试并提交正确的信息并被授予访问权限。相同 url,不同的有效负载,不同的响应。
这可以吗?我知道可以检查获取方法,但我想对有效载荷做同样的事情。
或者有更好的方法吗?
我在模块的自述文件和the fetch-mock package的测试部分都没有找到解决方案。
fetchMock.mock({
routes: [{
name: 'LoginSuccess',
matcher: function(url, opts) {
return (url=="https://myurl" && opts && opts.params && opts.params.User=="ABCDE@gmail.com" && opts.params.Password=="password");
},
response: {
result:{
message: "Successful login",
credentials: "XXXXXXXXXXXXX"
}
}
}, {
name: 'LoginFail',
matcher: function(url, opts) {
return (url=="https://myurl" && opts && opts.params && opts.params.User=="ABCDE@gmail.com" && opts.params.Password!=="password");
},
response: {
result:{
message: "Unsuccessful login"
}
}
}]
});
我正在使用 wheresrhys fetch-mock npm 模块 运行 在我的应用程序中进行功能测试。我想用方法 'POST' 和特定的有效负载来模拟获取。
看起来像这样:
fetchMock.mock({
routes: {
name: 'LoginSuccess',
matcher: "https://myurl",
method: 'POST',
payload: {
params:{User: "ABCDE@gmail.com", Password: "password"}
},
response: {
result:{
message: "Successful login",
credentials: "XXXXXXXXXXXXX"
}
}
}
});
我想检查我的抓取的有效负载并给出相应的响应。例如,我可以模拟一个用户提交错误密码的登录,然后他们再次尝试并提交正确的信息并被授予访问权限。相同 url,不同的有效负载,不同的响应。
这可以吗?我知道可以检查获取方法,但我想对有效载荷做同样的事情。
或者有更好的方法吗?
我在模块的自述文件和the fetch-mock package的测试部分都没有找到解决方案。
fetchMock.mock({
routes: [{
name: 'LoginSuccess',
matcher: function(url, opts) {
return (url=="https://myurl" && opts && opts.params && opts.params.User=="ABCDE@gmail.com" && opts.params.Password=="password");
},
response: {
result:{
message: "Successful login",
credentials: "XXXXXXXXXXXXX"
}
}
}, {
name: 'LoginFail',
matcher: function(url, opts) {
return (url=="https://myurl" && opts && opts.params && opts.params.User=="ABCDE@gmail.com" && opts.params.Password!=="password");
},
response: {
result:{
message: "Unsuccessful login"
}
}
}]
});