The Temp Files Pattern
This is a pattern I first started using while working on rublog w/ Brian Marick et al. Dave Thomas gave it a better name when he checked it in, and I’ve renamed it since then. I think I like temp files. A second ago, I was working in nfit, and found myself writing it in c#. So I guess I like it.
Problem:
You want to test something that accesses files. Something that you want to do all the time for some apps.
Solution:
Create a class called !TempFiles, use it like this (for ruby):
def test_load files = TempFiles.new files.add('wiki/captions/2003_11-November_captions.txt', CONTENTS) files.create do |dir| captions = Captions.new(Wiki.new(dir, '/2003/11-November'), '/2003/11-November') assert_equal('Jilian', captions['apPle.JPG']) assert_equal('from the top', captions['bitter.jpg']) end end
It can be used from any test, and makes creating a file easy. From ruby the blocks make it really nice. I often add files in the setup code, but always have the block in the actual test. The nice thing about this is it’s easy to add files in your test right before creating them.
I’ll add the c# usage tomorrow
- UPDATE *
this is now a gem called file_sandbox – sudo gem install file_sandbox – enjoy…
Tags: file sandbox, projects, ruby, testing