角度アプリケーションをテストするためにJasmineを使用していますが、コントローラのready()関数が呼び出されたときにコントローラ内のgetItem()関数が呼び出されることをテストしたいと思います。角度単位テスト、SpyOnスタンドアロン関数
--- ---コントローラ
var vm = this;
vm.items = [];
$ionicPlatform.ready(ready);
function ready() {
vm.items.push(getItem());
function getItem(){
var item = //do stuff to get item;
console.log('getItem called');
return item;
}
}
---あなたはJavascriptのユニットテストの基本的な限界時に来ている仕様---残念ながら
describe('Controller', function(){
//--- Load app with dependencies and module to test code omitted.
beforeEach(function(){
//How do I spy on getItem() to test that it was called?
//I've tried getItem = jasmine.createSpy()
//I've tried spyOn(window, 'getItem')
}
//--- Initialize the controller and a mock scope code omitted.
beforeEach(function(done){
$ionicPlatform.ready(function(){
done();
});
});
it('getItem function should get called', function(){
expect(getItem).toHaveBeenCalled();
//--- Note, getItem does not get called according to the expect statement,
//--- but does output 'getItem called' to the terminal when running the test.
});
});