我想让(:变量)一个对象,这样我就可以在上下文的不同测试中使用这个对象。但与此同时,我希望确保在初始化对象时不会抛出任何异常。是否可能。
现在我在一个例子中这样做。我希望let
第一个var,以便它可以在示例中重复使用。
first_object= nil
expect{first_object= StandaloneG28::Forms::G28.new(attorey_profile,application_manager: appManager)}.to_not raise_exception
expect{Pdf::AttributeMappings::FillableG28Applicant.new(first_object).export(false)}.to_not raise_exception
expect{Pdf::AttributeMappings::FillableG28Sponsor.new(first_object).export(false)}.to_not raise_exception
attorney_profile和application_manager在外部上下文中定义。
答案 0 :(得分:1)
您可以声明let块,然后按如下方式测试它:
let(:first_object) { StandaloneG28::Forms::G28.new(attorey_profile,application_manager: appManager)}
it 'should not throw exception' do
expect{ first_object }.to_not raise_exception
end
这是有效的,因为我们不会评估,直到它首先在一个例子的范围内被调用。因此,初始化期间引发的任何异常都可以使用expect进行评估。
注意,在测试异常/错误时,你需要使用花括号作为except声明,否则除了赢得偶然看到异常之外。