Существует ли подход, подобный step_into
, чтобы поощрять Chefspe c следовать вызову ресурса super
в его родительский класс? Или вы можете предложить подход для проверки того, что вызов super
выполняется (или не выполняется), как ожидается, для выполнения соответствующего действия в родительском классе?
, например,
class Child < Chef::Provider::Parent
provides :child_resource
def action_create
# do childlike things
super
end
end
class Parent < Chef::Provider::LWRPBase
provides :parent_resource
def action_create
# do parental things
file "/home/mine/#{new_resource.name}.json" do
action :create
content 'I am malformed json content'
end
end
end
с рецептом
child_resource 'ima_potato' do
property 'vegechair'
end
и проверено с
require 'chefspec'
describe('procreate-concreate') do
let(:child_runner) do
memoized_runner('procreate-concreate', {step_into: ['child_resource', 'parent_resource']}, 'child_runner') do |node|
# node things
end
end
it 'creates the parent resource' do
expect(child_runner).to create_parent_resource('ima_potato')
end
it 'creates the parent file' do
expect(child_runner).to create_file('/home/mine/ima_potato.json')
end
end
Вышеприведенный шаблон работает. Мое тестирование упустило пропущенное логическое значение для условного выражения.