0
我正在使用rspec
編寫模型規範測試,嵌套模型深度達到3級。每個->
代表has_many
的關係。Rails嵌套模型未通過驗證
Users->Goals->Milestones
現在,我的spec/models/milestone_spec.rb
測試失敗一個be_valid
檢查,我有點難倒了,爲什麼發生這種情況。
Failures:
1) Milestone
Failure/Error: it { should be_valid }
expected valid? to return true, got false
# ./spec/models/milestone_spec.rb:17:in `block (2 levels) in <top (required)>'
的規範本身:
describe Milestone do
let(:user) { FactoryGirl.create(:user) }
let(:goal) { user.goals.build(content: "Loreum Ipsum", amount: "30", interval: 2) }
before do
@milestone = goal.milestones.build(amount: "20")
end
subject { @milestone }
it { should respond_to(:goal_id) }
it { should respond_to(:amount) }
# not sure why this isn't working
it { should be_valid }
難道是跟我是如何創造@milestone
?我試過goal.milestones.new
,這似乎沒有什麼區別。在規範下面我有一些測試字段正確驗證,並且運行良好。
任何想法?
不是試圖驗證它是否有效,而是調用'valid?',然後檢查錯誤數組是否爲空。這將提供更有用的失敗信息。 –