Как я могу макет веб-сокетов / WS с помощью Sinon?Я пытаюсь проверить, что мое приложение работает должным образом при использовании WebSockets, без необходимости каждый раз подключаться (например, тестировать обработчики событий и т. Д.).
Исходя из фона C #, я просто высмеиваювесь интерфейс с использованием библиотеки, такой как Moq, а затем убедитесь, что мое приложение произвело ожидаемые вызовы.
Однако при попытке сделать это с помощью Sinon я сталкиваюсь с ошибками.
Пример теста:
const WebSocket = require('ws');
const sinon = require('sinon');
const webSocket = sinon.mock(WebSocket);
webSocket.expects('on').withArgs(sinon.match.any, sinon.match.any);
const subject = new MyClass(logger, webSocket);
Затем этот класс вызывает:
this._webSocket.on("open", () => {
this.onWebSocketOpen();
});
Но когда я пытаюсь запустить свои тесты, я получаю эту ошибку:
TypeError: Attempted to wrap undefined property on as function
Как правильно подобрать объект, подобный этому, используяSinon?
Спасибо.