Ruby on rails 使用Rails进行功能测试时在多个表中创建记录时出现的问题
我正在尝试在Rails 3.2.3项目中执行默认功能测试。当我这样做时,我多次出现如下错误:Ruby on rails 使用Rails进行功能测试时在多个表中创建记录时出现的问题,ruby-on-rails,ruby,postgresql,testing,Ruby On Rails,Ruby,Postgresql,Testing,我正在尝试在Rails 3.2.3项目中执行默认功能测试。当我这样做时,我多次出现如下错误: || test_should_create_food_item(FoodItemsControllerTest): || ActiveRecord::InvalidForeignKey: PG::Error: ERROR: insert
|| test_should_create_food_item(FoodItemsControllerTest):
|| ActiveRecord::InvalidForeignKey: PG::Error: ERROR: insert or update on table "food_items" violates foreign key constraint "food_items_us
我的食物项目记录有一个外键,指向用户表中的用户id
据我所知,Rails在每次调用测试方法时都会创建和销毁“测试”数据库中的测试数据。如果这是真的,那么这个错误是有意义的,因为当记录被插入到food_items表中时,users表将是空的
下面是我为解决这个问题所做的努力。首先,我确保相关模型具有适当的has\u many,并属于章节
接下来,我在food_items_controller_test.rb中的设置函数中添加了以下内容:
setup
do
> @user = users(:one)
@food_item = food_items(:one)
end
我还尝试将@user调用添加到各个测试中,但没有任何区别
在我执行“食品”\u“项目”\u“控制器”\u“测试”中的功能测试之前,我还可以做些什么来创建用户记录
另外,如果可能的话,我宁愿不关闭“test”数据库中的DB约束 是,您可以在执行食品项目控制器测试中的功能测试之前创建用户记录