Проблем с unit тестването


2

Здравейте, 

     Сблъсках се със следния проблем - опитвам се да тествам различни модули(с Mocha, Chai, Sinon), които комуникират чрез 'system.js', но тестовете изобщо не тръгват. Когато обаче премахна Import-те за зависимостите и нагодя модула, така че да мога да го тествам самостоятелно нямам никакви проблеми. С две думи използвам ли system.js във скриптовете си, не мога да ги тествам. Дълго се чудех какъв може да е проблемът, така че ще съм много благодарен, ако някой помогне или даде някаква идея.




Отговори



5

Щом използваш systemjs (ES6) и експортваш модулите с него, значи в теста може да импортнеш модула, който тестваш, с

import {module_name} from 'module_path'

Тестовете пак няма да тръгнат. Трябва да кажеш на mocha да си ги прекомпилира до ES5, например с babel. Тогава командата за тестване ще е нещо подобно:

mocha -R spec tests --compilers js:babel/register

Можеш директно да си я сложиш в package.json

"scripts": {

    "test": "mocha -R spec tests --compilers js:babel/register"
  }

и така ще тестваш просто с

npm test


от gbelcheva (612 точки)


1
Колежке, а как стоят нещата при използване на require.js и визуализиране чрез html reporter, все пак да е малко по-приятно за окото.

от MarinMarinov (912 точки)


3
Същият проблем и при мен просто не става 10МБ библиотеки инсталирах и 2 дена загуба вече.Трябва много да се помолим на Дончо да ни покаже. Уникален е. Гледаш лекциите всичко ти става ясно.Гледаш с каква лекота пише код и си викаш ей сега ще повторя. Да ама не. Имам чуството, че съм на светлинни години.

от dchakov (861 точки)


1

Същият проблем, само че вместо system.js ползваме require.js. Правя html репортър, в най-добрият случай ми изписва че липсва chai.

Ако отделя функцията, която искам да тествам в отделно файлче(ако е възможно, разбира се), няма никакви проблеми, тестовете тръгват и връщат очакваните резултати.


от MarinMarinov (912 точки)


3

Както писах по-горе 2 дена и половина мъки но finally. За да ви се показват тестовете както предполагам повечето искат с html reporter. Както е писала колежката  в тест файловете e необходимо.

import {module_name} from 'module_path'

след което в html

 System.import('tests/tests.js')
        .then(function() {
            mocha.run();
        }, function() {
            console.log('error');
        });

Стартира се през сървър и са необходими babel-core and babel-runtime ако не тръгнат.


от dchakov (861 точки)


0
След хиляди магии от тук от там, нещата взеха, че станаха. Благодаря на всички!

от antoanelenkov (1047 точки)


0
Начи очаквай обаждане по някое време.

от jumarto (808 точки)