nodejs / mocha / nock - 模拟整个HTML响应

时间:2013-06-05 20:32:22

标签: node.js unit-testing express mocking mocha

如何为我的测试模拟整个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(或其他东西)。

感谢。

1 个答案:

答案 0 :(得分:3)

首先获取测试文件的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类似的问题,并得到了一些有趣的回答。