Недавно я перенес одну из своих моделей из самодельной (основанной на родителя) древовидной структуры в ancestry gem, и у меня есть ошибка контроллера для действия new
. Линия вопрос:Тестирование методов атрибутов с помощью RSpec Rails
assigns(:category).should be_a_new(Category).with(parent_id: root_category.id)
Однако он жалуется, что нет атрибута parent_id
и на самом деле это не так parent_id теперь метод. Как мне изменить приведенную выше строку, чтобы проверить как новую категорию, так и category.parent_id == root_category.id
?
Однако я заметил, что для subsubcategories столбец родословной выглядит примерно так: «6/8» ... Предпочтительный метод должен был бы протестировать метода возвращаемое значение, если это возможно. – janosrusiczki
Thats true, но RSpec :: Rails :: Matchers :: BeNew # работает только с атрибутами. Я думаю, вам нужно разделить оператор на 2 строки 'assigns (: category) .should be_a_new (Category)' и 'присваивает (: category) .parent_id.should eq root_category.id' или вы пишете собственный пользовательский матчи, работающий с методами , – dan
Бинго! Я искал эту вторую строчку, и я также буду изучать персонализированные шаблоны. Благодаря! – janosrusiczki