2013-01-19 26 views
0

我还没有找到写作测试的rspec方法,但希望能够帮助理解我在测试中做了什么错误。什么是在rspec中测试模型值数组的正确方法?

describe Source do 

    describe "Upcase name" do 
    names = {'bob' => 'Bob', 
      'edward jones' => 'Edward Jones' 
     'Edward jones' => 'Edward Jones'} 

    names.each do |name,expect| 
     before { @source = Source.create(name: name) } 
     after { @source.destroy! } 

     it "source #{name} should be #{expect}" do 
     subject { @source } 
     @source.name.should == expect 

     let!(:find) do 
      Source.find_by_proper_name(expect) 
     end 
     it "should find" do 
      should == find 
     end 
     end 
    end 
    end 
end 

我对源模型的名称列有一个唯一的约束。

由于唯一违规,每次迭代测试都会作为失败返回。 (即使我认为它会在每次迭代中只创建一个模型)

如果我将三个中间值取出,所以如果一次创建所有名称都是唯一的,那么测试将失败,因为@source等于在所有测试中最后一个值。

基本上我想要干的方式来编写测试

Source.create(name: "bob").name.should == "Bob" 
Source.create(name: "edward jones").name.should == "Edward Jones" 
Source.create(name: "Edward jones").name.should == "Edward Jones" 

我应该怎么做呢?

回答

相关问题