我正在嘗試爲我的ext js應用程序設置單元測試。
我使用Jasmine 2.0和PhantomJS從控制檯運行測試。
我可以在控制器的init方法中成功初始化存儲。
但是,如果我嘗試聲明它在商店Config中,我發現了以下錯誤:
類型錯誤:「空」是不是(評估「新C()」)構造函數(1號線)(1) ,
錯誤的原因是什麼,如何解決?
用Jasmine 2.0和PhantomJS進行單元測試ext js
預先感謝您。
我的代碼如下:
TestApplication.js
Ext.Loader.setConfig({ enabled: true });
Ext.ns('myApp');
// Loading different components like controller, model, view..
Ext.application({
name: 'myApp',
appFolder: '../App',
controllers: [],
autoCreateViewport: false,
init : function() {
myApp.app = this;
},
// Launch Jasmine test environment
launch: function() {
var jasmineEnv = jasmine.getEnv();
jasmineEnv.updateInterval = 1000;
var htmlReporter = new jasmine.HtmlReporter();
jasmineEnv.addReporter(htmlReporter);
jasmineEnv.execute();
}
});
spec.js
describe("myController", function() {
var ctrl= null,
store = null;
beforeEach(function() {
bmTab = Ext.create("myApp.controller.myController");
bmTab.init();
});
});
myController.js
Ext.define('myApp.controller.myController', {
extend: 'Ext.app.Controller',
//stores: [Stores.myStore];
init:function() {
console.log('**** init');
var store = Ext.create(Stores.myStore);
console.log('**** store created' + store);
}
});
我不知道,如果'Stores.myStore'會妥善解決,在指定商店初始化的時間,你可以通過在'stores' config中硬編碼來指定'Stores.myStore'的值來嘗試一下嗎? – Cyclone
@Cyclone 你的意思是明確指定完整的命名空間嗎? 我試過了。同樣的結果 – DanielS
嗯: -/ 我不知道還有什麼是怎麼了...... – Cyclone