2

如何为我的测试模拟整个 HTML 正文响应?

我正在使用 nodejs/mocha/nock。

使用 nock 我可以很好地模拟 JSON 响应,例如:

nock('http://myapp.iriscouch.com')
                .get('/users/1')
                .reply(200, {_id: "123ABC", _rev: "946B7D1C", username: 'pgte'});

我曾经curl -o为 mock 获取我想要的 html,所以我已经将它放在一个文件中 - 但我不知道如何将 HTML 文件传递​​给 nock(或其他东西)。

谢谢。

4

1 回答 1

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'});

如果您想要更通用的方法,我已经就类似问题提出了更通用的问题,并得到了一些有趣的回答。

于 2013-06-18T14:01:03.493 回答