如何为我的测试模拟整个 HTML 正文响应?
我正在使用nodejs/mocha/nock。
使用 nock,我可以很好地模拟 JSON 响应,例如:
nock('http://myapp.iriscouch.com')
.get('/users/1')
.reply(200, {_id: "123ABC", _rev: "946B7D1C", username: 'pgte'});
我使用curl -o
来获取我想要的模拟的html,所以我已经将它放在一个文件中 - 但我不知道如何将HTML文件传递给nock(或其他)。
谢谢。
最佳答案
首先获取测试文件的 HTML 内容并将其放入字符串中(例如使用 fs.readFile
)
之后您可以执行以下操作:
nock('http://myapp.iriscouch.com').
get('/users/1').
reply(200, yourFileContent);
这就是我过去的做法:)
如果您愿意,您可以显式指定内容类型,因为您将正文指定为字符串,这将有效地让您轻松模拟任何非二进制响应:
nock('http://myapp.iriscouch.com').
get('/users/1').
reply(200, yourFileContent, {'content-type': 'text/html'});
如果您想要更通用的方法,我已经问过 a more general question关于类似的问题并得到了一些有趣的答复。
关于node.js - nodejs/mocha/nock - 模拟整个 html 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16949308/