fault_injection.rb
Overview
What is it?
A ‘fault injection’ tool for ruby.
What is a ‘fault injection’? What is it used for?
Fault injection is one of testing techniques. It makes easier to test your application’s error handling behavior or to improve the coverage of your tests.
See http://en.wikipedia.org/wiki/Fault_injection for more details.
Can I use it in my application code?
No. It is for your testing code.
Can I use it everywhere in my test code?
You should not. It is for some limited situation that rarely happen or difficult to set up (ex. IOError). If you can make ‘evil situation’ easily, that’s better ;)
Installing
sudo gem install faultinjection
Sample codes
# sample.rb class Foo def foo puts "I love injection" end def bar 10 / 2 # this is line 7 end end # test.rb require 'fault_injection' include FaultInjection inject "Foo#foo > Kernel#puts", IOError, "IO error" f = Foo.new f.foo #=> IOError inject "sample.rb:7",ZeroDivisionError f.bar #=> ZeroDivisionError
License
This code is free to use under the terms of the MIT license.
Contact
The SVN repository is available at http://faultinjection.rubyforge.org/svn/ for anonymous access.
Comments are welcome. Feel free to Send an email to keisukefukuda.spam@gmail.com
(Please remove ”.spam” from the address for anti-spam, and include ‘ruby’ or ‘fault_injection’ in the title)
Keisuke Fukuda, 11th January 2008
Theme extended from Paul Battley