2016-11-27 10 views
1

Я хочу, чтобы (: variable) объект, чтобы я мог использовать этот объект в тестах differents в контекстах. Однако в то же время я хочу гарантировать, что при инициализации объекта не было исключено никаких исключений. Является ли это возможным.Обеспечение успешного выполнения инициализации без исключения исключения

Сейчас я делаю это в примере. Я хочу, чтобы 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

Вы можете объявить Выпускаемый блок, а затем проверить его следующим образом:

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 

Это работает, потому что пусть не оценивает до это первым называется в пределах примера. Таким образом, любые исключения, возникающие во время инициализации, могут быть оценены с использованием ожидания.

Обратите внимание, что при тестировании исключений/ошибок вам нужно использовать фигурные скобки для исключения, иначе, даже не получите шанс увидеть исключение.

+0

Умный .. никогда не думал об этом, хотя я знаю об этой ленивой оценке, а также говорю в вопросе «Я хочу отпустить». Поздние ночи никогда никому не помогают. – Rpant

+1

хе-хе ... сделал это сам много раз, с ответом смотрел мне в лицо ... вот где дополнительная пара свежих глаз помогает :) – David

Смежные вопросы