У нас есть веб-приложение на основе amd / require js. Мы подошли к тому, чтобы добавить модульное тестирование в наш код. Гугл вернул, что сквайр Js - лучшая библиотека для дураков на основе требований. после установки проблема в том, что мы не можем разрешить зависимость squire js. Проблема кажется такой простой c, но мы попытались использовать ее с Mocha и Jasmine, хотя кажется, что мы забываем настроить ее:
наше js, которое мы хотим протестировать, выглядит в основном так:
define(function employeeAndTagsPage(require) {
var global = require('common/global');
var customMessageWindow = require('../../customMessageWindow/customMessageWindow');
var currentTab;
var navigate = null;
// and other BL
});
Пакет. json:
{
"name": "jasmine.test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "MIT",
"devDependencies": {
"amd-loader": "0.0.8",
"jasmine-node": "^3.0.0",
"requirejs": "^2.3.6",
"squirejs": "^0.2.1"
}
}
Jasmine_examples PlayerSpe c. js:
describe("Player", function () {
require('amd-loader');
var Player = require('../../lib/jasmine_examples/Player');
var Song = require('../../lib/jasmine_examples/Song');
var requirejs = require('requirejs');
var squire = requirejs('squirejs'); // here it fails
var player, song, mock;
beforeEach(function() {
player = new Player();
song = new Song();
mock = new squire();
});
//unit tesitng
});
Ошибка, которую мы получаем:
ReferenceError: requirejs is not defined
Stack:
at <Jasmine>
at getContext (c:\Synel\TESTS\eHarmonyNew-Jasmine\eHarmony\App\Test\node_modules\squirejs\src\Squire.js:58:5)
at Squire.configure (c:\Synel\TESTS\eHarmonyNew-Jasmine\eHarmony\App\Test\node_modules\squirejs\src\Squire.js:107:15)
Код библиотеки сквайра js можно найти здесь:
https://github.com/iammerrick/Squire.js/blob/master/src/Squire.js
В чем причина сбоя библиотеки? Что мы забываем? Любая помощь или рекомендация оценивается