On Jan 18, 12:57 am, Paul McMahon <p... / ubit.com> wrote: > You are using assert_raise improperly. It should be > > assert_raise(RuntimeError) do > @search.run > end > > see http://www.ruby-doc.org/core/classes/Test/Unit/Assertions.html#M006692 Hi Paul, > http://www.ruby-doc.org/core/classes/Test/Unit/Assertions.html#M006692 Thanks for the reference. OK, I've got it: here are the first two validation expressions in Search#validate: fail "Starting search directory is required: " + (@dirname ? ('"' + @dirname + '"') : 'nil') + " is not a directory" unless @dirName && File.directory?(@dirName) fail "'#{@nameRE}' is not a valid regular expression for nameRE!" if @nameRE && !@nameRE.instance_of?(Regexp) The corresponding unit tests (all of which succeed) are: def test_000_DirRequired @search.dirName = nil assert_raise(RuntimeError) {@search.run} end def test_001_DirMustBeValid @search.dirName = '../no_such_dir' assert_raise(RuntimeError) {@search.run} end def test_002_IfNameGivenThenRE @search.nameRE = '/\.rb$' assert_raise(RuntimeError) {@search.run} end And everything works as expected when actually using the setters for a real invocation of Search. Thanks for your help. Best wishes, Richard