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でも発生します。作ったジャスミンのスパイも潰してしまうので、カルマのせいなのかな?