From: Eric Hodel Date: 2007-08-16T11:27:38+09:00 Subject: Re: Unit tests and destructive methods On Aug 15, 2007, at 14:43, darren kirby wrote: > As my flac library approaches 1000 lines of code I decided it would > be prudent > to finally get around to writing some unit tests, which I have > done. Now: I > have created a 'reference' flac file with known values, which I > then read to > see if my lib parses it correctly. > > That works great for the 'read' part of the library, however, I am > now adding > methods which write/rewrite values in the flac file (tags, padding > blocks > etc) making permanent changes in the file, and I am wondering how > best to > write tests for these. > > I am thinking that I need to write code which makes a copy of the > reference > file, write the changes, read the copy to ensure the changes were > written > correctly, then delete the copy. > > Does this seem reasonable? Is there a better way? require 'fileutils' require 'tmpdir' class FlacTest < Test::Unit::TestCase def setup @tempdir = File.join Dir.tmpdir, "flac_test_#{$$}" FileUtils.mkdir_p @tempdir end def teardown FileUtils.rm_rf @tempdir end end Should get you started. -- Poor workers blame their tools. Good workers build better tools. The best workers get their tools to do the work for them. -- Syndicate Wars