sinon.js假服务器响应

时间:2014-04-24 07:56:48

标签: javascript sinon

我创建了一个假的服务器,最后想做两件事:

  • 回答请求
  • 检查传递的数据

这是这样的:

    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()函数添加行为?

1 个答案:

答案 0 :(得分:0)

这与我的假服务器测试类似。你必须留下一个函数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块中验证您的数据并向浏览器发送必要的答案。