When using a helper class with an rspec test, I can't see to use the .should be_false
idiom. It's okay in a function defined in a helper .rb file, but when it's within a class the be_false
symbol is not found. Example below -- why doesn't this work? How can I use be_false
et al in a helper?
It seems possible that it's intentional that assertions like this only work in tests themselves. I have helpers which can fail due to eg. network comms problems which are actually bona-fide test failures since the network comms my helpers use are part of the system under test. How should I make my tests fail gracefully inside a helper class?
Results
$ spec ./test.rb
helper_foo 1
helper_foo 2
helper_foo 3
FunctionFoo 1
F
1)
NameError in 'my_test should test that helper classes can use should be_false etc'
undefined local variable or method `be_false' for #<HelperFoo:0x2b265f7adc98>
./helper.rb:13:in `FunctionFoo'
./test.rb:13:
Finished in 0.004536 seconds
1 example, 1 failure
test.rb
require "helper.rb"
describe "my_test" do
it "should test that helper classes can use should be_false etc" do
(1 == 1).should be_true
(2 == 1).should be_false
helper_foo()
instance = HelperFoo.new()
instance.FunctionFoo
end
end
helper.rb
def helper_foo
puts "helper_foo 1"
(1==2).should be_false
puts "helper_foo 2"
(2==2).should be_true
puts "helper_foo 3"
end
class HelperFoo
def FunctionFoo
puts "FunctionFoo 1"
(1==2).should be_false
puts "FunctionFoo 2"
(2==2).should be_true
puts "FunctionFoo 3"
end
end