При использовании вспомогательного класса с тестом rspec я не вижу возможности использовать идиому .should be_false
. Это нормально в функции, определенной в вспомогательном файле .rb, но когда она находится внутри класса, символ be_false
не найден. Пример ниже - почему это не работает? Как я могу использовать be_false
и др. В качестве помощника?
Кажется возможным, что намеренные утверждения вроде этого работают только в самих тестах. У меня есть помощники, которые могут потерпеть неудачу из-за, например. проблемы с сетевыми коммуникациями, которые на самом деле являются подлинными сбоями при тестировании, поскольку сетевые коммуникации, которые используют мои помощники, являются частью тестируемой системы Как сделать так, чтобы мои тесты изящно проваливались во вспомогательном классе?
Результаты
$ 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