我有一个小的 Rails 应用程序,我最初使用的是 sqlite3,然后决定切换到 mysql。切换后,我的一个 rspec 测试失败了,但我不知道为什么(使用 sqlite3 时它工作正常,并且通过实际页面检查功能似乎工作正常)。
我的测试如下:
before(:each) do
@a = FactoryGirl.create(:a)
@b = FactoryGirl.create(:b)
@relationship = @a.connector.build( :b_id => @b)
@relationship.save
end
测试1:
it "should have the right b" do
@relationship.b.should == @b
end
测试 2:
it "should have the right a" do
@relationship.a.should == @a
end
在我的测试中,测试 1 失败,而使用 mysql 时测试 2 成功通过(使用 sqlite3 时的两个路径)。据我所知,如果我只是切换数据库,我不应该要求对测试本身进行任何更改,那么任何人都可以判断我是否做错了什么?或者如果我需要添加一些东西来刷新数据库?
在相关说明中,在 rspec 测试本身中调试问题的推荐方法是什么,尤其是在实际开发工作但测试失败的情况下?(我使用的是 Rails 3.1 和 rspec-rails 2.10.1)。
提前感谢您的任何意见,
问候,