0
와일드 카드가 포함 된 디렉토리를 스텁하려고합니다 (폴더의 이름 지정 방식에 영향을주는 특정 버전 번호를 모르는 경우). 나는 double()을 사용해 보았고 문제가 발생하여 두 단계 프로세스라고 생각했다 ... 현재 반복에서 나는 와일드 카드를 고려한 파일을 globing하려고 시도했다가 디렉토리가 사실인지 확인했다. . 내가 뭔가 잘못하고 있는거야?Rspec : 배열을 문자열로 변환 할 수 없습니다.
Dir.stub(:exist?).with(dir).and_return(true)
그러나 Dir.glob
가 배열을 반환 : 당신이 Dir.exist?
스텁 할 필요가 같은
it "Return 1.5 is Linux OS and correct version" do
Facter.fact(:kernel).stubs(:value).returns("linux")
dir = Dir.glob("/opt/athena-*/bin/runner")
Dir.exist?(dir).and_return(true)
Facter::Util::Resolution.stubs(:exec).with('runner -version').returns("Version: 1.5")
Facter.fact(:version).value.should == "1.5"
end
파일이 디렉토리에 있는지 확인하려고하지만 디렉토리가 athena 버전에 따라 변경되므로'/ opt/athena-1.4/bin/runner' 또는'/ opt/athena-3.6/bin/runner' – user3455953
아직도 혼란 스럽네요 -이게 RSpec과 어떤 관련이 있죠? – zetetic
이 디렉토리가 테스트의 일부로 존재하는지 확인해야하는 테스트 케이스가 있습니다. – user3455953