Я использую Jasmine, Karma и PhantomJS для автоматизации своих тестов, но я сталкиваюсь с проблемой: Phantom, похоже, не правильно разбирает мои JS. Например, я использую этот макет:Отсутствующие функции в тестах кармы
var App = function() {
return {
pageController : {
currentPage : {
on : function() {},
toJSON : function() {},
get : function() {
return dark;
}
}
},
mainLayout : {
header : {
show : function() {},
$el : {}
}
}
};
};
console.log("in test", App());
... который регистрирует, как:
PhantomJS 1.9 (Mac) LOG: [ 'in test',
{ pageController: {},
mainLayout: { header: [Object] } } ]
app.pageController опорожнен здесь, что вызывает мои тесты на провал. Почему это происходит & как я могу это исправить?
Проблема кажется непосредственно связанной с определениями функций. Например:
console.log("this is a function:", function() { return 'wat'; });
дает
PhantomJS 1.9 (Mac) LOG: [ 'this is a function:', null ]
ошибка также происходит в Chrome. Он тоже сквозит созданных шпионов жасмина, поэтому я предполагаю, что это связано с кармой?