fault_injection.rb
** FAQ
* 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.
* What can I do with fault_injection.rb ?
- You can raise error at any line of code or particular method call
without changing the target code.
* Cat it be used with Ruby on Rails testing?
- It should, but it's not yet tested well with big applications.
Please try and feel free to send me a bug report.
* 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 ;)
In addition, fault_injection.rb uses set_trace_func API of ruby and
it makes a script much slower.
** 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
__END__
# test.rb
require 'rubygems'
require 'fault_injection'
FaultInjection.inject "Foo#foo > Kernel#puts", IOError, "IO error"
f = Foo.new
f.foo #=> IOError
FaultInjection.inject "sample.rb:7",ZeroDivisionError
f.bar #=> ZeroDivisionError
__END__
** 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/
Comments are welcome. Feel free to Send an email to [email protected]
(Please include 'ruby' or 'fault_injection' in the title).
Thank you for using fault_injection.rb
** FAQ
* 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.
* What can I do with fault_injection.rb ?
- You can raise error at any line of code or particular method call
without changing the target code.
* Cat it be used with Ruby on Rails testing?
- It should, but it's not yet tested well with big applications.
Please try and feel free to send me a bug report.
* 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 ;)
In addition, fault_injection.rb uses set_trace_func API of ruby and
it makes a script much slower.
** 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
__END__
# test.rb
require 'rubygems'
require 'fault_injection'
FaultInjection.inject "Foo#foo > Kernel#puts", IOError, "IO error"
f = Foo.new
f.foo #=> IOError
FaultInjection.inject "sample.rb:7",ZeroDivisionError
f.bar #=> ZeroDivisionError
__END__
** 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/
Comments are welcome. Feel free to Send an email to [email protected]
(Please include 'ruby' or 'fault_injection' in the title).
Thank you for using fault_injection.rb