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

10-07 14:48