我有以下rspec
context "example 1" do
puts "hello"
it "example 1 it" do
sleep(50)
end
end
context "example 2" do
puts "thanks"
it "example 2 it"
end
end
当我使用rake运行时,我得到以下输出:
hello
thanks
example 1
example 1 it
<<waits for 50s >>
为什么thanks
会在睡眠50秒时打印出来?我希望只有在睡眠结束后才能打印thanks
。
答案 0 :(得分:1)
puts
正在执行,因为rspec会处理您的文件,而不是与正在运行的测试结合使用。为了向您自己证明这一点,您可以尝试在it
语句之后引用未定义的局部变量。
例如:
context "example 1" do
puts "hello"
it "example 1 it" do
sleep(50)
end
puts "goodbye" + cruel_world
end
当你运行rspec时,你会看到你的“你好”,然后是
An error occurred while loading ./spec/your_spec.rb
后面引用了cruel_world的NameError。