2012-03-30 68 views
1

我创建了一个测试用例来将数据保存到我的数据库。 Fixtures保持正确,但我在测试用例中创建的记录没有显示在数据库中。我的测试如下所示:在Rails中创建的记录不会坚持测试数据库

test "new course" do 
    course = Course.new 
    course.name = 'test' 
    assert course.save 
end 

测试通过,当我调试通过,然后致电course.save自己,我可以看到它有一个生成的ID。有任何想法吗?

+0

我不明白这个问题。特别是出了什么问题? – 2012-03-30 15:26:08

回答

7

如果您试图在测试后检查数据是否在数据库中,由于测试运行方式,情况并非如此。

试验轨(默认)数据库事务中运行,因此它会继续前进,创建测试中的数据并运行所有的断言,但一旦这一切都说过和做过这将回滚事务离开数据库处于原始状态。

这样做的原因是为了使数据库始终保持清洁,并且没有记录可能会改变测试结果。


虽然这可以通过禁用设置被改变(我忘了这是在测试::单位土地),或通过使用工具,如database_cleaner

相关问题