Lorsque j'utilise une classe d'assistance avec un test rspec, je ne vois pas comment utiliser l'idiome .should be_false
. C'est correct dans une fonction définie dans un fichier .rb auxiliaire, mais quand il est dans une classe, le symbole be_false
est introuvable. Exemple ci-dessous - pourquoi cela ne fonctionne-t-il pas? Comment puis-je utiliser be_false
et al dans une aide?Dans rspec, pourquoi ne puis-je pas utiliser be_false etc dans les classes auxiliaires?
Il semble possible que ce soit intentionnel que de telles affirmations ne fonctionnent que dans les tests eux-mêmes. J'ai des aides qui peuvent échouer en raison par exemple. Problèmes de communication réseau qui sont en fait des échecs de test de bonne foi puisque les communications réseau que mes assistants utilisent font partie du système testé. Comment devrais-je faire échouer mes tests gracieusement dans une classe d'aide?
Résultats
$ 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
Merci, cela a du sens maintenant. – kdt