确保初始化工作正常而不会引发异常

时间:2016-11-27 04:08:05

标签: rspec

我想让(:变量)一个对象,这样我就可以在上下文的不同测试中使用这个对象。但与此同时,我希望确保在初始化对象时不会抛出任何异常。是否可能。

现在我在一个例子中这样做。我希望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在外部上下文中定义。

1 个答案:

答案 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声明,否则除了赢得偶然看到异常之外。