Я использую superagent для возврата некоторых услуг XHR в приложение для реагирования. Я написал очень тонкую обертку вокруг суперагента, чтобы упростить настройку. Попытка проверить этот тонкий слой оказалась довольно головной болью.Проблемы с модулями узлов
Я знаю, что есть issues с привязкой к шуму и узлу ядра, и я могу заставить работу работать dontMock
зависимостей суперагента. Но я бы предпочел, чтобы шутка просто высмеивала superagent
, не взорвавшись по умолчанию.
В результате очень подробный ввод или ввод unMockedModulePatterns
в моем пакете.json, есть ли лучший способ?
// my-module.js
'use strict';
var request = require('superagent');
module.exports = function() {
return request.get('http://stackoverflow.com/questions/tagged/jestjs');
};
Пример теста:
// __tests__/my-module-test.js
'use strict';
jest.dontMock('../');
// T_T
jest.dontMock('superagent');
jest.dontMock('debug');
jest.dontMock('tty');
jest.dontMock('util');
jest.dontMock('stream');
jest.dontMock('fs');
jest.dontMock('delayed-stream');
jest.dontMock('mime');
jest.dontMock('path');
describe('mymodule', function() {
var myModule, request;
beforeEach(function() {
myModule = require('../');
request = require('superagent');
request.get = jest.genMockFunction(function() {
return {
get: jest.genMockFunction()
}
})
});
it('makes an xhr request using superagent', function() {
var req = myModule();
expect(request.get).toBeCalledWith('http://stackoverflow.com/questions/tagged/jestjs');
});
});