I am currently writing a class which processes a log file, inserts some data into the database, and then rotates the log file. I am doing test-driven development and I was curious as to the best practices for testing classes which manipulate the file system. Rails tests have a transactional feature for testing database manipulation such that changes made to the DB are reset after each test. I was wondering if there was anything like this for the file system. It would be great if the test could automatically reverse any file system changes made during a test; I could imagine doing this via proxying access to the File, FileUtils, and Dir classes. Has anything like this been done? Or is there a better approach altogether? For the record, I'm using Shoulda.
on 2009-01-29 21:40
on 2009-01-31 14:19
On Thu, Jan 29, 2009 at 10:37 PM, Chris Vincent <email@example.com>wrote: > access to the File, FileUtils, and Dir classes. Has anything like this > been done? Or is there a better approach altogether? > > For the record, I'm using Shoulda. > -- > Posted via http://www.ruby-forum.com/. > > You should use mock objects in place of file operations. If you're using mocha, you can do things like File.expects(:delete).with(file_name) File.delete(file_name) -- Andrew Timberlake http://ramblingsonrails.com http://www.linkedin.com/in/andrewtimberlake "I have never let my schooling interfere with my education" - Mark Twain