Ember.js: застрял на начальном интеграционном тесте

Я нахожусь в процессе изучения Ember после релиза 1.0 и думал, что у меня все идет хорошо, пока я не попытался следовать это руководство по интеграционному тестированию. Это хорошо написано и довольно поучительно, но я уже несколько дней застрял на отладке установочного теста :/ Нубские боли...

Это описание показывает тест и ошибку в qunit. Я слежу за установкой из tute, которую я видел в другом месте.

В IRC кто-то указал, что в этой игре используется R5, а не последняя версия 1.0. Он не знал, изменилось ли с тех пор тестирование эмбера, но это, возможно, виновно.

Любые идеи о том, что я могу делать неправильно? Это должно быть что-то глупое, я знаю :)

(используя Ember с Rails 4)

Обновить

Скрипка Марсио позволяла мне играть с добавлением и удалением элементов, пока я не воспроизвел ошибку. Оказывается, у меня не было настроено никаких шаблонов, и тесту это не понравилось, хотя приложение загрузилось без ошибок, а ember-инспектор видел маршруты и т. д.


person oliverbarnes    schedule 07.09.2013    source источник
comment
Привет, я сделал здесь простой jsfiddle и работал jsfiddle.net/marciojunior/GveWH. Можете ли вы показать код, выполняемый при переходе на '/'. На примере IndexRoute, шаблон индекса...   -  person Marcio Junior    schedule 07.09.2013
comment
Марсио, спасибо за это! Я закончил отладку с помощью вашей скрипки и обнаружил, что ломается - отсутствующие теги сценария руля: P   -  person oliverbarnes    schedule 08.09.2013
comment
Вы хотите создать ответ, чтобы я мог проверить его как правильный? Только честно, так как это решило мою проблему... слишком быстро   -  person oliverbarnes    schedule 08.09.2013


Ответы (1)


Я получил эту работу после учебника:

Javascript:

App = Ember.Application.create();

App.Store = DS.Store.extend({
    adapter: DS.FixtureAdapter
});

App.Router.map(function() {
    this.route('edit', { path: ':person_id' });
});

App.IndexRoute = Ember.Route.extend({
  model: function() {
      return this.store.find('person');
  }
});

App.Person = DS.Model.extend({
    firstName: DS.attr('string'),
    lastName: DS.attr('string')
});

App.Person.FIXTURES = [
    {id: 1, firstName: 'Kris', lastName: 'Selden'},
    {id: 2, firstName: 'Luke', lastName: 'Melia'},
    {id: 3, firstName: 'Formerly Alex', lastName: 'Matchneer'}
];

App.rootElement = '#ember-testing';
App.setupForTesting();
App.injectTestHelpers();

function exists(selector) {
  return !!find(selector).length;
}

module("Ember.js Library", {
  setup: function() {
    Ember.run(App, App.advanceReadiness);
  },
  teardown: function() {
    App.reset();
  }
});

test("Check HTML is returned", function() {

  visit("/").then(function() {
    ok(exists("*"), "Found HTML!");
  });

});

Шаблоны:

<div id="qunit"></div>
<div id="qunit-fixture"></div>
<div id="ember-testing-container"><div id="ember-testing"></div></div>

<script type="text/x-handlebars" data-template-name="application">
    <h1>ember-latest jsfiddle</h1>
    {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="index">
  <h2>Index Content:</h2>
  <ul>
  {{#each}}
      <li>{{#link-to 'edit' this}}  {{firstName}} {{lastName}} {{/link-to}}</li>
  {{/each}}
   </ul>
</script>

<script type="text/x-handlebars" data-template-name="edit">
  <h2>Edit:</h2>
  <p id='name'>
      {{firstName}}
  </p>
</script>

Вот игра с этим рабочим http://jsfiddle.net/marciojunior/GveWH/

person Marcio Junior    schedule 08.09.2013