Javascript sinon.js伪造服务器响应
我创建了一个假服务器,最后想做两件事:Javascript sinon.js伪造服务器响应,javascript,sinon,Javascript,Sinon,我创建了一个假服务器,最后想做两件事: 对请求的答复 检查传递的数据 其工作原理如下: server.respondWith("POST", serverUri, [ 200, {"Content-Type": "application/text"}, "Answer from fake server" ]); // f1 server.respondWith(function(data) { // f2 try { v
- 对请求的答复
- 检查传递的数据
server.respondWith("POST", serverUri, [ 200, {"Content-Type": "application/text"}, "Answer from fake server" ]); // f1
server.respondWith(function(data) { // f2
try {
var dataSentToServer = data.requestBody;
ok(dataToRegister === dataSentToServer, testComment);
} catch (e) {
console.error(e);
}
}
);
但在测试开始时,我不希望它有反应。所以我干脆离开f1。
但是在一些语句之后,我希望服务器调用f1和f2。现在只添加f1行不起作用,因为不再调用f2。似乎f1覆盖了f2。我还需要重新申报f2
是否有可能将行为添加到已有的respondWith()函数中?这与我的伪服务器测试任务类似。您必须保留一个函数respondWith,并将数据的所有逻辑和服务器的答案写入其中
server.respondWith(method, model,
(function() {
var answer = [];
if (model.attributes.car_model == "") {
answer = [
404,
{ "Content-Type": "application/json" },
'[{"0":"not car selected"}]'
];
} else {
answer = [
200,
{ "Content-Type": "application/json" },
'[{"0":"good query"}]'
];
}
return answer;
})(model));
其中“model”-是来自ajax的数据,在if-else块中验证数据并将必要的答案发送到浏览器