2016-06-30 3 views
0

Я пишу модельный тест для модели своих приложений, которая accepts_nested_attributes_for(:user). Вот тест, который терпит неудачу:Тест Rspec + shoulda терпит неудачу на accept_nested_attributes_for несмотря на отношения

describe UserApplication, "associations" do 
    it { should belong_to(:user) } 
    it { should accept_nested_attributes_for(:user) } 
end 

А вот модель:

class UserApplication < ActiveRecord::Base 
    #attr_accessible all the fields 

    belongs_to :user 
    accepts_nested_attributes_for :user 
end 

Я использую RSpec с Shoulda-matchers 2.8, и из моего исследования все это должно работать нормально. Никакой весны или какой-либо другой странности. Вот ошибка, которую я вижу:

1) UserApplication association 
Failure/Error: it { should accept_nested_attributes_for(:user) } 
NoMethodError: 
    undefined method `accept_nested_attributes_for' for #<RSpec::Core::ExampleGroup::Nested_2:0x007fec5c641a40> 
# ./spec/models/user_application_spec.rb:25:in `block (2 levels) in <top (required)>' 

Я не уверен, что может быть причиной этого. Может ли это быть какой-то странный конфликт с жемчужиной, или я не вижу чего-то очевидного?

+0

Можете ли вы попытаться обновить свой матчи до последней версии и попробовать еще раз? Невозможно увидеть документы для этой конкретной версии. –

+0

@AnezioCampos. Обновление toa-matcher до 3.0 требует, чтобы я обновил activesupport до 4.0, чего я не могу сделать в настоящий момент, к сожалению. Я застрял на рельсах 3.2 на время. – octopushugs

+0

Этот 'it {должен accept_nested_attributes_for (: user)}' должен быть 'it {должен accepts_nested_attributes_for (: user)}' (вам не хватает 's' на' accepts' ... '' – Hackerman

ответ

0

Хорошо, поэтому я должен отдать должное @PeterAlfvin за то, что дал мне инструменты, чтобы посмотреть, что было не так. Мой gemfile указан gem 'shoulda-matchers', но это только загружало версию 1.0, у которой не было поддержки accepts_nested_attributes_for. Его предложение, через https://stackoverflow.com/a/2954632/1008891, указывало мне в правильном направлении. Указание 2.8.0 исправило проблему, не нарушив ничего.

Смежные вопросы