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,可能很快就会用到它,谢谢。
我是 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,可能很快就会用到它,谢谢。