Jak przetestować „normalne” (inne niż Node) funkcje JavaScript w Mocha?
To wygląda na topowinien być niezwykle prostym; jednak po dwóch godzinach czytania i bezproblemowych prób i błędów przyznaję się do porażki i pytam was!
Próbuję użyćMokka zShould.js przetestować niektóre funkcje JavaScript, ale mam problemy z określeniem zakresu. Uprościłem go do najbardziej podstawowych przypadków testowych, ale nie mogę go uruchomić.
Mam plik o nazwiefunctions.js
, który zawiera tylko następujące elementy:
<code>function testFunction() { return 1; } </code>
I mójtests.js
(znajduje się w tym samym folderze) zawartość:
<code>require('./functions.js') describe('tests', function(){ describe('testFunction', function(){ it('should return 1', function(){ testFunction().should.equal(1); }) }) }) </code>
Ten test kończy się niepowodzeniemReferenceError: testFunction is not defined
.
Rozumiem dlaczego, ponieważ większość przykładów, które znalazłem, albo dołącza obiekty i funkcje do węzłaglobal
obiekt lub wyeksportuj je za pomocąmodule.exports
—Ale użycie jednego z tych podejść oznacza, że mój kod funkcji będzie rzucał błędy w standardowej sytuacji przeglądarki, gdzie te obiekty nie istnieją.
Jak więc uzyskać dostęp do samodzielnych funkcji zadeklarowanych w oddzielnym pliku skryptu z moich testów, bez użycia składni specyficznej dla węzła?