Ошибка интеграционного теста Ember

На основе отличный скринкаст и пример, я смог провести модульное тестирование своего Приложение Ember (RC7) успешно записывает объекты модели и т.д. У меня проблемы с интеграционным тестированием. Я даже попробовал самый простой тест, как показано ниже, но безрезультатно. Любые советы о том, что я делаю неправильно?

Я получаю эту ошибку из консоли:

ЖУРНАЛ: «Приложение готово»

ИНФОРМАЦИЯ: 'сгенерировано -> маршрут: приложение', Object {fullName: 'маршрут: приложение'}

ЖУРНАЛ: «NeedsAuthMixin: пользователь не аутентифицирован (1)».

ИНФОРМАЦИЯ: «Визуализация приложения с помощью», Object{fullName: 'view:application'}

ИНФОРМАЦИЯ: 'Визуализация входа с помощью ', Object{fullName: 'view:login'}

ЖУРНАЛ: "Перешел в "логин""

ЖУРНАЛ: 'тестирование... экран входа в систему загружается ОК 1'

ЖУРНАЛ: "Перешел в "логин""

Chrome 28.0.1500 (Mac OS X 10.6.8) Интеграционные тесты — загрузить страницу входа FAILED Ожидалось 1 подтверждение, но выполнено 0

Предыстория. Как видите, при загрузке моего приложения оно проверяет аутентификацию пользователя, после чего переходит на страницу входа, если пользователь не прошел аутентификацию.

Это код, который вызывает тест (сгенерированный из coffeescript):

asyncTest("test: load login page", function() {
  expect(1);
  console.log("testing... login screen loads OK 1");
  return visit("/login").then(function() {
    return ok(1 === 1, "Value equal 1.");
  });
});

Мой файл конфигурации Karma находится здесь.

Брайан


person bk11425    schedule 20.08.2013    source источник


Ответы (1)


Я думаю, это сработает, если вы используете test() вместо asyncTest()

person Mike Grassotti    schedule 21.08.2013
comment
Спасибо за ответ. Итак, я только что попробовал это, и я больше не получаю вышеуказанную ошибку (ура!), но вместо этого получаю эту, которую я видел раньше: ...ERROR Uncaught TypeError: Cannot call method 'extractId' of undefined at /Users/.../Report3YO/app/components/ember/ember-data-latest.js:2627 Указывает ли эта ошибка на то, что какой-то объект, который он ищет, отсутствует или, возможно, не был отображается, когда он был выполнен (таким образом, не определено)? - person bk11425; 21.08.2013
comment
Трудно сказать наверняка, не заглянув в отладчик. extractId — это метод, который должен быть в сериализаторе. Когда тест запущен, ember пытается передать некоторую модель функции сериализатора extractId, но сериализатор не определен. Сериализатор является свойством вашего адаптера и будет инициализирован при загрузке приложения, поэтому, вероятно, что-то не так с тестовой настройкой. Очень похоже на эту проблему: stackoverflow.com/questions/18312596/ - person Mike Grassotti; 21.08.2013
comment
Спасибо за полезный отзыв и ссылку на другой вопрос. Мне потребовалось некоторое время, чтобы возиться, но я, наконец, заработал. Когда я закомментировал все тесты, кроме приведенного выше, это сработало. Затем я добавил один обратно и получил ту же ошибку extractId. Ради шутки я закомментировал App.reset(); в функции «настройка» модуля (см. пример ссылки), и оба работали нормально. Я читал, что сброс вызова требовался при тестировании моей установки с Karma-runner и QUnit, но, думаю, больше нет. - person bk11425; 24.08.2013