rspec-给出的错误“Then”在示例中不可用(例如“it”块)
rspec-given error `Then` is not available from within an example (e.g. an `it` block)
我正在使用 rspec-given 并不断收到此错误。
Failure/Error:然后{
Then
在示例中(例如 it
块)或示例范围内 运行 的构造(例如 before
、let
中不可用, ETC)。它仅适用于示例组(例如 describe
或 context
块)。
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).
请仔细阅读错误信息。您在错误消息中找到了解决方案。
您不能在 it
块中使用 Then
,您只能在 describe
或 context
块中使用 Then
。
因此,要解决您的问题,只需使用 context
而不是 it
:
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.
我正在使用 rspec-given 并不断收到此错误。
Failure/Error:然后{
Then
在示例中(例如 it
块)或示例范围内 运行 的构造(例如 before
、let
中不可用, ETC)。它仅适用于示例组(例如 describe
或 context
块)。
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).
请仔细阅读错误信息。您在错误消息中找到了解决方案。
您不能在 it
块中使用 Then
,您只能在 describe
或 context
块中使用 Then
。
因此,要解决您的问题,只需使用 context
而不是 it
:
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.