#javascript #node.js #typescript #sinon
Вопрос:
В моем проекте node я использую Sinon, и у меня возникли проблемы с издевательством над библиотекой перекрестной выборки.
Таким образом, в основном у меня есть простая служба, которая вызывает внутреннюю перекрестную выборку, что-то более или менее похожее на это:
import fetch from 'cross-fetch';
public async sendMyData(id): Promise<void> {
const payload = await this.generatePayload(id);
await sendRequest(payload, id);
}
А затем fetch называется так:
private async sendRequest(payload, id): Promise<void> {
await fetch(`http://my-api-url/endpoint/${id}`, {
method: 'POST',
body: JSON.stringify(payload)
});
}
Поэтому в своих тестах я хочу создать свой сервис и имитировать перекрестную выборку и проверить, с какой полезной нагрузкой он был вызван.
Комментарии:
1. Какой метод вы хотите протестировать?
2. Я хочу проверить sendMyData, который вызывает sendRequest, и этот использует внутреннюю выборку. Я знаю, что мог бы использовать jest, чтобы поиздеваться над всем модулем, но, к сожалению, мы не можем использовать jest в нашем проекте.
3. Вы можете использовать макет библиотеки http, например: fetch-mock или nock . Или вы должны использовать только синон?
4. Проблема в том, что я должен использовать синон. Но я думаю, что в проекте также присутствует http-макет. Как с помощью этого можно издеваться над внутренним вызовом http в частном методе?