在ExtJs应用程序中,为了使getStore工作控制器,在Application.js中添加了模型和存储。但是对于使用siesta进行测试,我无法在Application.js中进行任何更改。
直接调用Ext.getStore(storeId)返回undefined。我试过在preload中添加模型,但它没有帮助。
我该怎么做?
------------------------- testFile AnalysisController.t.js中的代码------------- --------
StartTest(function(t){
var testStore = Ext.getStore('Nm.store.analysis.TestStore'); //testStore is undefined
});
------------------------- testModel.js中的代码----------------- --------
Ext.define('Nm.model.analysis.TestModel',
{
extend: 'Ext.data.Model',
fields: [
{name:'lastName',type:'string'},
{name:'age',type:'int'},
{name:'relationDescription',type:'string'},
{name:'dateOfBirth',type:'date',dateFormat: 'm-D-Y'}
]
});
------------------------- testStore.js中的代码----------------- --------
Ext.define('Nm.store.analysis.TestStore',{
extend : 'Ext.data.Store',
requires: ['Nm.model.analysis.TestModel'],
model : 'Nm.model.analysis.TestModel'
});
-------------------------线束文件testIndex.js中的代码--------------- -
var Harness = Siesta.Harness.Browser.ExtJS;
Harness.configure({
title : 'Samples',
loaderPath : { 'Nm' : 'app' },
preload : [
"http://cdn.sencha.io/ext/gpl/4.2.0/resources/css/ext-all.css",
"http://cdn.sencha.io/ext/gpl/4.2.0/ext-all-debug.js"
]
});
Harness.start({
group : 'Controller',
items : [
'test/AnalysisController.t.js'
]}
);
答案 0 :(得分:0)
使用Ext.getStore()你必须注册我认为的商店。
答案 1 :(得分:0)
检查测试文件中是否定义了Ext。虽然Siesta支持Ext,但默认情况下未定义变量Ext。最简单的方法是在测试的顶部添加以下内容:
var Ext = test.global.Ext;
答案 2 :(得分:0)
加载"全球"通过Ext.getStore()
存储,必须在应用程序中注册。
为此,请确保将其添加到主应用类
中的商店数组中Ext.application({
extend: 'Ext.app.Application',
stores: [ add global store classes here ]
});