Интеграционные тесты CRUD Ember.js

#ember.js #integration-testing

#ember.js #интеграция-тестирование

Вопрос:

Мне нужно выполнить интеграционные тесты для моего приложения Ember, например, в пользовательском шаблоне :

 <div class="container">

<h1>{{model.firstName}} {{model.lastName}}</h1>
<p>Age: {{model.age}} years old</p>
<p>Job: {{model.job}}</p>
<img src="{{model.image}}" alt="img" id="image">


</div>
  

Я должен проверить, правильно ли отображается список пользователей. Возможно ли это сделать?

Я никогда этого не делал, и я здесь немного потерялся. Будет ли это что-то вроде :

 test('it renders all users', function(assert) {
this.set('users', [
{ firstName: 'Tubby'},
{ firstName: 'Spot'},
{ firstName: 'Chester'},
{ firstName: 'Frisky'}
]);

 this.render(hbs`{{user users=users}}`);
 assert.equal(this.$('.user').length, 4);
 });
  

Несмотря на то, что я прочитал много статей об интеграционных тестах, я все еще не понимаю, можно ли его использовать для чего-то, что не является компонентом.

Как насчет перенаправления? Давайте просто скажем, что я должен написать интеграционный тест, который проверяет, что перенаправление в порядке. Могу ли я сделать это с помощью интеграционных тестов?

Спасибо за вашу помощь.

Комментарии:

1. Используйте приемочный тест

Ответ №1:

Возможно, стоит сделать краткий обзор вариантов тестирования:

Модульные тесты позволяют нам тестировать небольшие фрагменты кода. Таким способом легко протестировать сервисы, сериализаторы или адаптеры.

Интеграционные тесты в первую очередь предназначены для того, чтобы вы могли тестировать компоненты и то, как они работают вместе и взаимодействуют с пользователями. Часто тестируемые вещи включают события разного рода (щелчки, нажатия клавиш и т.д.) И то, как компонент реагирует на разные типы данных.

Приемочные тесты часто используются для тестирования интегрированного всего вашего приложения (притворяясь вашим пользователем и просматривая сайт).

Часто проверки на перенаправление являются либо приемочным тестом. Вы также можете выполнять модульные тесты (если у вас сложная логика маршрута, которая обрабатывает различные сценарии перенаправления). Тестирование перенаправлений в интеграционном тесте в первую очередь сосредоточено на том, чтобы убедиться, что нажатие кнопки попытается перенаправить куда-то еще.

Помогает ли это?

Комментарии:

1. Еще бы! Если вы не возражаете принять ответ, я использую acceptances как способ найти вещи, с которыми людям все еще нужна помощь здесь…

Ответ №2:

Я надеюсь, что приведенный ниже туториал поможет вам разобраться в тестовом примере. В руководстве приведены примеры для всего тестирования (МОДУЛЬНОГО, принятия и интеграции).

https://medium.com/@srajas02/ember-test-case-for-a-crud-application-with-mirage-d6d9836bfee2

Исходный код:https://github.com/srajas0/ember-test-cases