我想知道如何在rspec中測試是否刪除了特定的文件。下面是我測試如何在rspec中測試文件是否被刪除?
def check_status
filename = File.join('test', 'status.txt')
File.delete(filename) if File.exist?(filename)
end
下面的代碼測試:
before do
allow(File).to receive(:exist?).and_return(true)
allow(File).to receive(:delete)
end
it {expect(File).to receive(:delete).with("test/status.txt") }
我收到錯誤
(File (class)).delete("test/status.txt")
expected: 1 time with arguments: ("test/status.txt")
received: 0 times
能否請你幫我這個問題。我確信我的代碼會刪除文件,但在測試中它會收到0次。
我想你可以檢查文件是否仍然存在後刪除。允許(File).to接收(:exists?)。and_return(false)' –
您的建議將始終返回true,因爲我有代碼:allow(File).to receive(:exist?)。and_return(true)。我想檢查是否在特定文件上調用刪除。 – ivan
你在哪兒叫'check_status'? – Anthony