如果spec文件在it()示例组之前包含这个,那是什么意思?
context "when almost full (with one element less than capacity)" do
before(:each) do
@stack = Stack.new
(1..9).each { |n| @stack.push n }
end
end
context "when full" do
before(:each) do
@stack = Stack.new
(1..10).each { |n| @stack.push n }
end
end
之前执行的是哪一个?
我不明白。
答案 0 :(得分:8)
before(:each)
将在运行后续规范之前运行。因此,例如,在您的完整堆栈规范中,任何规范都将在执行之前设置完整堆栈。您没有任何It
方法,但目前并没有真正发生。
值得注意的是,在该上下文的所有规范之前,有before(:all)
将运行一次。而before(:each)
在每个规范之前运行。