Per molto semplice I/O, è possibile presentare solo finta. Così, dato :
def foo
File.open "filename", "w" do |file|
file.write("text")
end
end
poi:
describe "foo" do
it "should create 'filename' and put 'text' in it" do
file = mock('file')
File.should_receive(:open).with("filename", "w").and_yield(file)
file.should_receive(:write).with("text")
foo
end
end
Tuttavia, questo approccio cade piatto in presenza di molteplici letture/scritture: semplici refactoring che non cambiano lo stato finale del file può causare il test di rottura. In tal caso (e possibilmente in ogni caso) dovresti preferire la risposta di @Danny Staple.
fonte
2010-11-02 05:25:08
@Wayne mi chiedo come si intende procedere con TestUnit Sede [questa domanda] [1] [1]: http://stackoverflow.com/questions/11619884/ testunit-how-to-test-file-operations-and-file-content – netbe