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块中验证数据并将必要的答案发送到浏览器