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.