我正在开发一个 RESTful Node.js API (express+mongoose) 这个 API 调用第三方 Oauth API (google, facebook, 不管)。
到目前为止,我一直很高兴使用 mocha+chai+request 设置自动化测试,但是我在模拟第三方 API 来测试调用它的(我的 API 的)路由时遇到了麻烦。我试过使用 nock,但它不适用于我的用例。
为了运行我的测试,我启动了我的 API ( npm start
),然后在另一个选项卡中启动了测试套件 ( npm test
)。测试套件使用请求通过 HTTP 测试 API。因此,我认为 nock 在这里不起作用,因为它在“测试套件”过程中而不是在“API”过程中模拟 http。
我绝对需要模拟这个第三方调用,原因有两个: 1. 我希望能够离线运行我的测试套件,所有东西都在我的笔记本电脑上运行 2. 由于第三方 API 使用 Oauth,测试套件中的硬编码凭据(即使是测试帐户)似乎也不太容易。
我真的很想不要在我的测试覆盖中留下这个巨大的漏洞,所以任何建议都会非常感激!