Rails cancan(может) не распознавать данные в тестовой базе данных

У меня есть основательный ability.rb определил, что работает правильно. Однако когда я пишу спецификацию контроллера, которая отправляет запрос конечной точке, cancan(can) многократно возвращает 403.

В моем ability.rb в соответствующем разделе для обработки конечной точки, которую я тестирую, при выводе {Model}.all.to_json это выводит пустой массив.

Как я могу исправить это, чтобы он распознавал данные в моей тестовой базе данных, или изменить мой тест, чтобы обойти это?

2 ответа

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

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

Данные в тестовой базе данных сбрасываются на каждой итерации. Если вы хотите использовать какое-то определенное состояние (например, данные), вы должны воссоздать это состояние как часть теста.

В зависимости от тестовой среды, используйте before или же setup зацепка для создания необходимых данных в наборе тестов перед выполнением самого теста.

Другие вопросы по тегам