如何为测试模拟整个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一个类似的问题,得到了一些有趣的回答。