Как протестировать «обычные» (не специфичные для Node) функции JavaScript с помощью Mocha?

Кажется, это должнобыть чрезвычайно простым; однако, после двух часов чтения и безуспешных проб и ошибок, я признаю поражение и прошу вас, ребята!

Я пытаюсь использовать Mochaс Should.jsдля тестирования некоторых функций JavaScript, но у меня возникают проблемы с областью действия. Я упростил его до самых простых тестов, но не могу заставить его работать.

У меня есть файл с именем functions.js, который просто содержит следующее:

function testFunction() {
    return 1;
}

И мой test.js(расположенный в той же папке) содержимое:

require('./functions.js')

describe('tests', function(){
    describe('testFunction', function(){
        it('should return 1', function(){
            testFunction().should.equal(1);
        })
    })
})

Этот тест завершается с ошибкой ReferenceError: testFunction не определена.

Я понимаю, почему, потому что большинство примеров, которые я нашел, либо присоединяют объекты и функции к объекту Node global, либо экспортируют их, используя module.exports, но используя либо из этих подходов означает, что мой код функции будет вызывать ошибки в стандартной ситуации браузера, где эти объекты не существуют.

Итак, как я могу получить доступ к автономным функциям, которые объявлены в отдельном файле скрипта из моих тестов, без использования специфичного для Node синтаксиса?

48
задан Mark Bell 15 May 2016 в 05:54
поделиться