2017-04-04 1 views
1

테스트 값으로 메소드 호출을 스텁하는 방법이 있습니까? 예를 들어, 나는 이것을 시도 내 ChefSpec 테스트ChefSpec - 리소스 내부의 스텁 메소드

directory 'Log_Folder' do 
    def get_folder_name 
     'c:\temp\folder' 
    end 

    action :create 
    path get_folder_name 
end 

동안 '테스트'를 반환하는 get_folder_name하려는하지만 값을 대체하지 않습니다.

before do 
    allow_any_instance_of(Chef::Resource).to receive(:get_folder_name).and_return('test') 
end 

답변

0

따라서이 방법은 인라인으로 선언 되었기 때문에 스텁을 계속 덮어 쓰는 것이 문제 일 수 있습니다. allow_any_instance_of(Chef::Resource::Directory) 또는 그와 비슷한 방법을 시도해 볼 수는 있지만이 논리를 약간 더 자연스럽게 스터핑 할 수있는 사용자 지정 리소스로 옮길 것입니다.

+0

":: Directory"추가가 작동하지 않았습니다. 리소스 대신 레서피로 메소드를 이동하면 어떻게 될까요? allow_any_instance_of (Chef :: Recipe)를 사용해 보았지만 그 중 하나는 작동하지 않았습니다. – chief7

관련 문제