RAA - quicktest/0.1.0

quicktest / 0.1.0

Short description: utility for in-lining ruby unit tests the ruby code under test
Category: Library/Test
Status: alpha
Created: 2008-02-26 07:10:16 GMT
Last update: 2008-02-26 07:10:16 GMT
Owner: Greg Weber (Projects of this owner)
Homepage: http://rubyforge.org/projects/quicktest/
Download: http://rubyforge.org/frs/?group_id=5644
License: BSD-type
Dependency:
None
Description:

begin rdoc

Author and License

Copyright © 2008 Greg Weber, gregweber.info Licensed under the MIT license

ABOUT

Quicktest - A utility for inlining ruby unit tests with the ruby code under test

The typical test driven development workflow requires constant switching between the file containg the source code and the the file containg the tests. When creating code, it is much faster to be able to place tests immediately after the code you are writing. After the code has been written, it may be a good idea to move it to another file.

Quicktest is designed to support quick tests in a framework agnostic way. Currently, only an rspec testrunner is available, but it is trivial to write one for another testing framework.

FEATURES

Quicktest uses method tracing to know the method you are testing. By default the output of a failed test will show the object and method name.

USAGE

To test a method, place another method called ‘quicktest’ immediately after it the quicktest method has two OPTIONAL arguments

  • the test runner object
  • a reference to self
  • a method object for the method under test

run with spec -r quicktest file_to_test

There is a convenience script so that you can just run

   quickspec file_to_test

NOTES

  • leaving test code in with your production code is not necessarily a good idea, but there is almost no runtime overhead to doing so since ruby will not evaluate code in a method until the method is invoked
  • quicktest instance methods not working properly? if the class (or one of its ancestors) is overriding method tracing than including QuickTest::Tracer will fix it.

example: run with bin/quickspec

end rdoc

class Foo

  attr_reader :bar

  def initialize
    @bar = true
  end
  def quicktest t, s
    t.it "bar should be initialized to true" do
      s.bar.should == true
    end
  end

  def self.hello arg
    "hello" + arg
  end
  def self.quicktest t, s, meth
    t.it "should prepend 'hello' to its argument" do
      meth["world"].should == 'hello world' # error - no space 'helloworld'
    end
  end

end

begin

Running quicktest on the sourc of this README file outputs the following: .F

1) ‘Foo hello should prepend ‘hello’ to its argument’ FAILED expected: "hello world",

     got: "helloworld" (using ==)

./README:22:in `quicktest’ /home/greg/quicktest/lib/quicktest.rb:65:in `instance_eval’ /home/greg/quicktest/lib/quicktest.rb:65:in `run_tests’

Finished in 0.008338 seconds

2 examples, 1 failure

end

Versions: [0.5.6 (2008-03-12)] [0.4.0 (2008-03-08)] [0.3.2 (2008-02-28)] [0.1.0 (2008-02-26)]

Edit this project (for project owner)

back to RAA top