This is the best thing ever. I am so glad that I took the time to look at this a few weeks ago after sort of putting it off for the last six months. I won't bore you all with the details (that's what (e:james) is around for), but I found a super awesome new tool for testing programs, I can't believe I didn't check it out six months ago when I first heard about it. (rspec)
Basically, instead of unit tests you write a live spec, that is continuously run as you code that notifies you of the status of all your tests open each save of a file. So now I don't even have to run my tests anymore, the freakin computer does it for me, and pops up a discrete message in the corner of the screen letting me know what's going on.
Happy tests:
Sad tests:
And writing tests with the new tool is also so much cleaner and nicer.
Old way (just random made up examples):
def test_something File.open("/tmp/file", 'W') do |f| f << test_data end assert_equal "/tmp/file", Retrieve.file, "Should have found it!" end
New way:
it "should find file path" do Retrieve.file.should equal("/tmp/file") end
But, that is a bad example because it doesn't show all the mocking, like:
Retrieve.file("config") # => can not find Retrieve.stub!(:file).expects("config").and_returns("/tmp/file") Retrieve.file("config") # => "/tmp/file"
So that you can completely decouple all your tested classes from each other and external output, thus only testing very specific pieces of logic, and making testing ten times easier because you never have to set up infrastructure for it to work.
You can also just have empty tests, which act like a todo list - they show up when the tests run as pending, so it also acts like a roadmap.
The inane commenter is baaaaaa ack.
Actually, for a change, I think I just might understand your happiness at finding this autocheck tool. It's somewhat like writing a lengthy SAS/R code and finding out several lines later that the resultant analysis isn't what you wanted because of some stupid error in the code.
How nifty to have some program run chunks of your saved code in the background, as you write *and* let you know how you are doing. That totally rocks! Congrats on the find!