如果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
Run Code Online (Sandbox Code Playgroud)
哪一个将是之前执行的?
我不明白.
before(:each)
将在运行任何后续规范之前运行.因此,例如,在您的完整堆栈规范中,任何规范都将在执行之前设置完整堆栈.你没有任何It
方法,但目前并没有真正发生.
可能值得注意的是,在该背景的所有规范之前before(:all)
,将运行一次.而before(:each)
在每个规范之前运行.