我正在尝试为我的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