【发布时间】:2017-06-30 15:49:37
【问题描述】:
验证
def active_consent_run
return unless self.consent_run_id
unless [
ConsentRun::STATUS[:in_progress],
ConsentRun::STATUS[:needs_witness_signature],
ConsentRun::STATUS[:needs_researcher_signature]
].include?(self.consent_run.status)
errors.add(:consent_run_id, 'needs to be in progress')
false
end
end
rspec 测试
it "#active_consent_run" do
consent_run = create(:consent_run, :in_progress)
consent_question = create(:consent_run_question,
consent_run: consent_run)
expect(consent_question.valid?).to eq false
expect(consent_question.errors[:consent_run_id]).to \
eq ('needs to be in progress')
end
我有这个验证,我在 rails 中编写了一个 rspec 测试,但测试一直在下降。有人能帮我吗?谢谢! :)
【问题讨论】:
-
请分享您遇到了什么错误。
-
失败/错误:expect(consent_question.valid?).to eq false expected: false got: true (比较使用 ==)
-
您已经创建了
consent_run(无论它是什么意思),并通过了:in_progress。如果您希望in_progress的测试失败,请传递另一个值。 -
或者当我同意特征时,我得到这个错误:失败/错误:同意问题=创建(:同意运行问题,同意运行:同意运行)ActiveRecord::RecordInvalid:验证失败:同意运行需要进行
-
我有这个统计数据: STATUS = { in_progress: 0, # ConsentRun 已开始,但尚未完成 needs_witness_signature: 1, # 患者已签名,但研究人员未签名 needs_researcher_signature: 2, # 患者已签名并见证(如果必需),但未经研究人员同意:3,# 用户同意拒绝_consent:4,# 患者不同意或未通过问题 remove_consent:5 # 患者同意后删除同意
标签: ruby-on-rails ruby rspec