ruby-on-rails – rspec给出的错误`Then`在示例中不可用(例如“i
发布时间:2020-12-16 21:05:39 所属栏目:百科 来源:网络整理
导读:我正在使用rspec-given并继续收到此错误. 失败/错误:然后{ 然后,不能从示例(例如,它的块)或从示例范围内运行的构造(例如,before,let等)中获得.它仅在示例组(例如,描述或上下文块)上可用. describe SchoolService do Given(:school) { create(:school_with_a
我正在使用rspec-given并继续收到此错误.
失败/错误:然后{ describe SchoolService do Given(:school) { create(:school_with_applications) } Given(:service) { School.new(@school) } describe 'create_default_programs_and_year_grades!' do it 'checks program size' do When { service.create_default_programs_and_year_grades! } Then { expect(school.programs.size).to eq 3 } end end end 解决方法
错误消息说明了一切:
Then is not available from within an example (e.g. an it block) or from constructs that run in the scope of an example (e.g. before,let,etc). It is only available on an example group (e.g. a describe or context block). 请仔细阅读错误消息.并且您在错误消息本身中有解决方案. 你不能在它的块内使用Then,你只能使用Then和describe或context块. 因此,要解决您的问题,只需使用上下文而不是它: describe SchoolService do Given(:school) { create(:school_with_applications) } Given(:service) { School.new(@school) } describe 'create_default_programs_and_year_grades!' do context 'checks program size' do When { service.create_default_programs_and_year_grades! } Then { expect(school.programs.size).to eq 3 } end end end 查看更多examples here. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |