2017-01-21 6 views
1

У меня есть один файл js с функцией внутри. Я хочу написать модульные тесты для функции и доставить тесты и файл кому-то. Он должен быть автономным.Как написать модульные тесты для одного JS-файла?

Вот мой проект:

src: myFunction.js 
tests: empty for now 

myFunction.js:

function HelloWord() { 
    return 'Hello'; 
} 

Было бы здорово иметь тестовый файл, как это:

import { func } from './myFunction.js'; 

describe('tests', function() { 
    it('returns hello', function() { 
     expect(func()).toEqual('Hello'); 
    }); 
}); 

я не делаю знайте, какая единая тестовая структура будет самой простой и быстрой для выполнения того, что мне нужно сделать. Пользователь должен получить мой каталог и просто запустить тесты из командной строки.

+0

проверка 'mocha'. Очень быстро настроить. – Sergeon

ответ

2

Использование мокко, очень быстро настроить будет:

1) Установите мокко в package.json:

npm install --save-dev mocha 

2) Запишите тест. Пусть это будет test.js под /tests/, например:

var myFunc = require('./myFunction'); 

var assert = require('assert'); 
describe('the function' , function(){ 
    it('works' , function(){ 
     assert.equal(myFunc() , 'hello'); 
    }); 
}); 

3) Настройка команды package.json тест:

{ 
    ... 
    "scripts": { 
     "test": "node_modules/mocha/bin/mocha tests/test.js" 
    } 
} 

4) Тесты вызовов по npm test.

+0

Импорт и экспорт не работают. Как я могу получить функцию из файла без использования ES6? – user1261710

+1

Настройка, которую я написал, использовала 'node.js'. Насколько мне известно, на данный момент вы должны переслать код модулей ES6, чтобы он работал в любом браузере или любой версии nodejs, например, с помощью 'babel'. С другой стороны, если вам нужно проверить код, который запускается в браузере, в вопросе не ясно, вам может потребоваться использовать karma (https://karma-runner.github.io/1.0/index.html) , что делает настройку немного более сложной, чем просто запуск скрипта 'mocha'. – Sergeon

+0

Как узнать, нужно ли мне запускать тесты в браузере? Существует еще одно простое приложение с файлом index.html, но не весь код находится в html-файле. – user1261710

Смежные вопросы