我正在尝试使用 Qunit测试一些代码,但我在 Ajax 调用方面遇到了一些问题。我什至无法让他们使用 jQuery 方法通过最简单的 Ajax 调用进行正确测试。问题似乎是无论我做什么,尾随空格都会附加到 textResponse。
我最初的代码是这样的
asyncTest('Ajax calls', function() {
expect(1);
$.get('ajax.txt', {}, function(response) {
equal(response, 'foo', 'Ajax calls work correctly');
});
setTimeout(function() {
start();
}, 600);
});
其中 ajax.txt
是包含字符 foo
的文本文件。本次测试失败,报告
Ajax calls work correctly, expected: "foo" result: "foo ", diff:
"foo""foo "
然后我尝试了以下方法:
- 我已经针对“foo”(包括尾随空格)进行了测试
- 我在测试前完成了
response.replace(' ', '')
- 我改变了 ajax.txt 文件的字体编码
- 我已经在 Firefox 和 Chrome 中测试过,每次都清理缓存
- 我已经在警报中手动测试了相等性,即使使用 == 比较也是如此
但在任何情况下我都无法匹配到。例如在第一个变体中我得到了令人费解的答案
Ajax calls work correctly, expected: "foo " result: "foo ", diff: "foo "
我现在有点生气了。我可能做错了什么?
最佳答案
您可以 $.trim()
(jQuery trim ,因为 IE<9 本身没有它)结果,像这样:
equal($.trim(response), 'foo', 'Ajax calls work correctly');
为什么会发生这种情况?这可能是格式错误,例如Unix 与 Windows 的行尾让你不知所措。
关于javascript - Ajax 响应中的尾随空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4232264/