使用ember app kit进行测试时如何获得ember的商店?

时间:2014-01-18 23:17:55

标签: ember.js ember-data ember-app-kit

我创建了一个Post模型,我正在尝试编写一个简单的测试来检查我何时设置和检索标题。我不知道如何获得商店的句柄来创建新的Post对象。这是我的测试:

var App;

module('Acceptances - Index', {
  setup: function(){
    App = startApp();
  },
  teardown: function() {
    Ember.run(App, 'destroy');
  }
});

test('index renders', function(){
  expect(3);

  visit('/').then(function(){
    var title = find('h2#title');
    var list = find('ul li');

    equal(title.text(), 'Welcome to Ember.js');
    equal(list.length, 2);

    var text = list.text().replace(/\W/g, '');
    console.log(text);
    equal(text, 'RailsisunagiOmakaseO_o');
  });
});

test('can set title', function() {

  var store = App.get('store');
  var expectedTitle = 'Hello-world';
  var post = store.createRecord('post', {title: expectedTitle});
  var actualTitle = post.get('title');

    equal(actualTitle, expectedTitle, "");
});

我不断收到以下错误

Cannot call method 'createRecord' of undefined

这意味着我没有商店的句柄。如何让我的商店在我的测试中创建模型?

1 个答案:

答案 0 :(得分:3)

一般来说,我建议不要这样做,但测试是例外。

var store = App.__container__.lookup('store:main');