2010-10-23 23 views
2

这应该很简单,但我找不到任何示例。我在我的轨道,看起来就像标准的功能测试3个应用程序(从ActionController的TestCase的::降序):Rails功能测试 - 从设置中排除方法

test "see if 1+1=2" do 
.... 
end 

,并在上面我有一个设置方法:

setup do 
    ...... 
end 

如何排除一个方法?即

setup :except => "see if 1+1=2" do 
... 
end 

(以上不工作OBV)

回答

0

使用shoulda和上下文块,这样你可以把使用安装测试在一个范围内,并且测试不使用它们在另一个,或外部另一个上下文块。

0

我也很好奇。无需安装和学习任何新的宝石一种解决方法。将你的测试中定义一个私有函数

test "see if 1+1=2" do 
    setup_situation_1 
    ... 
end 

test "see if 1 * 1 = 1" do 
    setup_situation_1 
    .. 
end 

test "see if 1/1 = 1" do 
    # no setup here 
    ... 
end 

... 

private 
def setup_situation_1 
    ... 
end 

这是DRY-EST方法,我能想到的,而无需安装/学习新的宝石 - 这可能是一个对于一些人来说,这是最好的解决方案,特别是那些新的铁路。但是,我找不到这个setup/do方法的文档 - setup/do的“except”子句肯定是DRY-er。