当使用Jasmine对ExtJS进行单元测试时,如何正确设置app-test.js?

时间:2015-03-17 20:34:49

标签: unit-testing extjs jasmine

我对Jasmine(2.2)和ExtJS(4.2.1)都很新。我按照Sencha文档中的单元测试说明来测试feed-viewer示例ExtJS应用程序。我似乎无法让app-test文件加载应用程序。

这是我的app-test.js

Ext.Loader.setConfig({ enabled : true });
var Application = null;
Ext.onReady( function() {
    Application = Ext.create('app', {
        name: 'FV',
        controllers: [
           'Articles'
        ],
        launch: function() {
            var jasmineEnv = jasmine.getEnv();
            jasmineEnv.updateInterval = 1000;
            jasmineEnv.execute();
        }
    });
});

这是app.js

Ext.application({
    name: 'FV',
    paths: {
        'Ext.ux': '../../../examples/ux/'
    },
    controllers: [
        'Articles',
        'Feeds'
    ],
    autocreateViewport: true
});

并且,如果这可能是问题的一部分,我的文件夹结构如下:

FV/
  - app/
  - app-test/
    - resources/
    - specs/
  - app.js
  - app-test.js
  - run-test.html

我看到应用程序已正确加载的测试失败。 Chrome的开发工具向我展示了两个错误。第一个是XMLHttpRequest无法加载,第二个是Uncaught TypeError:对象不是在app-test.js的第三行抛出的函数

我觉得我可能错过了非常简单的事情。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

我终于开始工作了。这是我修改过的app-test.js

Ext.Loader.setConfig({ enabled : true });
Ext.ns('FV');
Ext.application({
    name: 'FV',
    appFolder: 'app',
    controllers: ['Articles'],
    autoCreateViewport: false,
    launch: function() {
        var jasmineEnv = jasmine.getEnv();
        jasmineEnv.updateInterval = 1000;
        jasmineEnv.execute();
    }
});

考虑到这与Sencha文档中的教程有多么不同,以及自1.1.0(这是他们的教程使用的版本)以来Jasmine的变化有多少,它绝对是他们进行更新的时候了。