0
我想寫一個規範是例子的數量,即「它」應該......「做」是在運行時確定的。我試圖把「它」的方法在我自己的方法,這樣我可以把它多次:如何在運行時向rspec添加示例?
def new_method(test)
it "#{test} should... " do
end
end
然而,「它」的方法不能從目前的規格::例子:: ExampleGroup ::子類實例。
我想寫一個規範是例子的數量,即「它」應該......「做」是在運行時確定的。我試圖把「它」的方法在我自己的方法,這樣我可以把它多次:如何在運行時向rspec添加示例?
def new_method(test)
it "#{test} should... " do
end
end
然而,「它」的方法不能從目前的規格::例子:: ExampleGroup ::子類實例。
爲了避免重複代碼,有時我做這樣的事情:
describe SomeOjbect do
%w(a b c d e f g).each do |val|
it "should have a value of #{val}" do
# ...
end
end
end
這將創建規範7個例。我想,如果你真的是使用的方法死心塌地,你可以做這樣的事情:
def new_method(grp, test)
grp.instance_eval do
it "#{test} should..." do
# ...
end
end
end
describe SomeObject do
new_method(self, "a")
new_method(self, "b")
new_method(self, "c")
new_method(self, "d")
# ...
end
在這裏,您通過self
,這是describe
塊的範圍,instance_eval
使您可以執行代碼,如果你在那個區域,所以it
方法可用。
感謝您的快速響應。感謝這些例子。如果您在開發時知道需要運行多少個示例,那麼它們就可以工作。不幸的是,就我而言,我需要在運行時確定這一點。 – Kerry 2010-09-14 16:33:30
那麼我也描述瞭如何讓你的'new_method'思想起作用。 – 2010-09-14 20:32:18