У меня проблемы с тестированием моего приложения Durandal с мокко с использованием phantomJs. Вот что я сделал:
Сначала я создал dummyPage для включения тестов в среду requireJs:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="mocha.css" />
<script type="text/javascript" src="chai.js"></script>
<script type="text/javascript" src="mocha.js"></script>
<script type="text/javascript" src="../lib/jquery/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="../lib/knockout/knockout-2.3.0.js"></script>
<script type="text/javascript" src="../lib/require/require.js"></script>
<script type="text/javascript">
require.config({
baseUrl: '../app/',
paths: {
'app': '../app',
'specs': '../sampleTest/specs/',
'text': '../lib/require/text',
'durandal': '../lib/durandal/js',
'plugins' : '../lib/durandal/js/plugins',
'transitions' : '/lib/durandal/js/transitions',
'knockout': '../lib/knockout/knockout-2.3.0',
'jquery': '../lib/jquery/jquery-1.9.1'
}
});
var runTests = function (specfiles) {
console.log('enter runTests');
require(specfiles, function () {
mocha.setup('bdd');
assert = chai.assert;
mocha.run();
});
};
</script>
</head>
<body>
</body>
</html>
Мой dummyTest выглядит так:
console.log('введите фиктивный тест');
define(['viewmodels/flickr'], function (flickr) {
describe('Test 1', function(){
it('should append a value', function () {
var arr = [];
arr.push('foo');
arr.push('bar');
assert.equal(arr[0],'foo', 'foo is a string');
});
});
})
Когда я запускаю phantomJs со следующим js-файлом, я получаю сообщение об ошибке:
Получение ReferenceError: не удается найти переменную: описать
page.onLoadFinished = function () {
page.evaluate(function (specFiles) {
runTests(specFiles);
}, specFiles);
};
page.open('mocha.htm');