2011-07-31 61 views
1

如果1次测试失败,其他人会做很多事情。 我该如何改变它,以便下面的其他检查(“它”)只有在be_valid为true的情况下才能完成,即如何嵌套下面的“it”。我可以为所有其他的创建一个不同的上下文,并且自己有be_valid,但是如何确保它们是依赖的(在这种情况下以一种好的方式!例如它们不会运行)。如何减少rspec测试依赖项?

describe Gorilla do 
    context "is valid" do 
    subject { Factory.build(:gorilla) } 
    it { should be_valid } 
    it { should have_many :gorilla_memberships} 
    it { should have_many(:gorilla_groups).through(:gorilla_memberships) } 
    it { should have_many :gorilla_observations } 
    it { should have_one(:avatar).through(:gorilla_observations) } 
    it { should have_one(:noseprint).through(:gorilla_observations) } 
... 

回答

2

没有明确支持在rspec中创建任何示例之间的关系。

+0

谢谢,无论如何:之前或嵌套,可以帮助我吗? –

+0

通过嵌套相关示例并在查找其父示例组的元数据的嵌套组中包含before(:all)来查找失败,您可能能够将某些东西拼凑在一起,然后将其所有示例在任何他们跑。我不确定它会起作用,我对它的价值持怀疑态度,并且相当肯定它会辜负你的规格,但对于他自己的:) –

+0

我讨厌口香糖,如果它不是正确的做法,那么我不会打扰与黑客。谢谢 :) –