Jasmine stubRequest 没有发送传递的字符串

Jasmine stubRequest is not sending the string as passed

我是 Jasmine 的新手,我有以下代码:

jasmine.Ajax.stubRequest(url).andReturn({
                        "status": 200,
                        "contentType": 'text/json',
                        "responseText": '{"entities": [1]}'
            });

客户端代码有这样一行:

JSON.parse(response);

其中 response'{"entities": [1]}'。但是当 运行 茉莉花将响应发送为:

Object{entities: [1]} //  console.log(response)

因此 parse 在客户端代码中失败,异常:

SyntaxError: JSON Parse error: Unexpected identifier "object" in client.js

为什么字符串会损坏?我该如何解决这个问题?

查看代码时,您可以在 mock-ajax 第 267 行看到:

responseValue: function() {
    switch(this.responseType) {
      case null:
      case "":
      case "text":
        return this.readyState >= 3 ? this.responseText : "";
      case "json":
        return JSON.parse(this.responseText);
      case "arraybuffer":
        throw unconvertibleResponseTypeMessage('arraybuffer');
      case "blob":
        throw unconvertibleResponseTypeMessage('blob');
      case "document":
        return this.responseXML;
    }

似乎在 json jasmine mock-ajax 的情况下已经解析了对象。

所以我猜测,如果您删除内容类型,您将首先获得在 responseText 中设置的确切字符串:

jasmine.Ajax.stubRequest(url).andReturn({
                    "status": 200,
                    "responseText": '{"entities": [1]}'
        });

不知道 mock-ajax,可能很快就会用到它,谢谢。