Rails cancan(может) не распознавать данные в тестовой базе данных
У меня есть основательный ability.rb
определил, что работает правильно. Однако когда я пишу спецификацию контроллера, которая отправляет запрос конечной точке, cancan(can) многократно возвращает 403.
В моем ability.rb
в соответствующем разделе для обработки конечной точки, которую я тестирую, при выводе {Model}.all.to_json
это выводит пустой массив.
Как я могу исправить это, чтобы он распознавал данные в моей тестовой базе данных, или изменить мой тест, чтобы обойти это?
2 ответа
Пройдя глубокий взгляд на мой код, я понял, что один бит данных, который я не создавал с помощью осветителей, не проходил валидацию и, следовательно, не создавался.
Моя среда тестирования была настроена правильно, но у меня не было create!
позвоните, а скорее create
, в результате чего он не будет явным с ошибками проверки.
Данные в тестовой базе данных сбрасываются на каждой итерации. Если вы хотите использовать какое-то определенное состояние (например, данные), вы должны воссоздать это состояние как часть теста.
В зависимости от тестовой среды, используйте before
или же setup
зацепка для создания необходимых данных в наборе тестов перед выполнением самого теста.