Пытаюсь наладить unit-тестирование. Имеется некоторый код:
var Common = module.exports = {
unit: {
somejQueryFn: function() { $('.selector') /* работаем с jQuery */ }
}
}
Пытаюсь написать юнит-тест:
describe('Test jQuery spec', function(){
var Common = require('common');
it('not working :( ', function(){
//Работает. Я использую jsdom, и для тестов создается DOM c jQuery, он работает.
expect( typeof $ ).toBe('function');
//А вот тут валится, говорит $ не определен, валиться именно в common, по стеку видно.
expect( Common.unit.somejQueryFn() ).toBe( result );
})
})
Собственно вопрос - каким можно сделать так, что бы
$
внутри Common, указывала
$
который я создал в юнит тесте? Пробовал через
.call()
, но естественно не сработало. Была идея сделать костыль типа
new Function( fn.toString() )
, но это нужно отрезать
function(){},
что не радует