在ember-cli应用程序中设置集成测试 - 如何访问module()和visit()?

时间:2014-06-03 08:32:27

标签: javascript ember.js integration-testing qunit ember-cli

这个页面, ember-cli testing,  说"包含的测试演示了如何使用new编写单元测试和验收/集成测试 ember-testing package"

但是,为了使集成测试有效,我需要找到modulevisit或任何ember test helpers。 它们在哪里找到,我可以从哪里导入它们?


详细说明:

我找到module的最近距离是moduleFor,可以从ember-qunit导入。 Module for不适合集成测试,因为我在应用程序中测试整个页面或一系列页面,而不是单个模型,路径,控制器,视图等。

我最好的猜测是可以在Ember本身找到visit,但我不确定从哪里导入它。

既不使用module也不使用moduleFor,我可以运行测试,但它们会出错:

  

ReferenceError:未定义访问

2 个答案:

答案 0 :(得分:8)

ember-cli生成start-app.js文件,其中包含准备ember进行测试的函数。

在集成测试文件中......

import startApp from '../../helpers/start-app'; // change this due to your folder hierarchy

var App;

module('Integration Test', {
  setup: function(){
    App = startApp();
  },
  teardown: function(){
    Ember.run(App, 'destroy');
  }
}

现在您的Ember App已准备好进行测试。你可以使用余烬测试助手。

答案 1 :(得分:1)

延长@ saygun的回答。 截至目前,我们将根据需要使用moduleForComponent或moduleFor。 例如:

moduleForComponent('comp-name', 'Integration | Component | comp name', {
  integration: true,
  setup: function(){
    App = startApp();
  },
  teardown: function(){
    Ember.run(App, 'destroy');
  }
});