mysql错误:无法销毁使用factoryGirl创建的对象
我使用mysql数据库在rails中运行rspec。在我使用factoryGirl创建了一个对象之后,我想销毁它,以便db在下一个运行规范时看起来干净。 以下是我在规范中的设置方式:mysql错误:无法销毁使用factoryGirl创建的对象,mysql,rspec,connection,destroy,initialization,Mysql,Rspec,Connection,Destroy,Initialization,我使用mysql数据库在rails中运行rspec。在我使用factoryGirl创建了一个对象之后,我想销毁它,以便db在下一个运行规范时看起来干净。 以下是我在规范中的设置方式: before (:each) do User.destroy_all @user = Factory.create :user end after (:each) do @user.destroy end 运行rspec时出错: Failure/Error: @user.destroy_all Na
before (:each) do
User.destroy_all
@user = Factory.create :user
end
after (:each) do
@user.destroy
end
运行rspec时出错:
Failure/Error: @user.destroy_all
NameError:
uninitialized constant User::connection
Failure/Error: @user.destroy
NameError:
uninitialized constant User::connection
我在用户模型中设置:dependent=>:destroy
这里有什么问题?问题是@user class变量引用的对象是未初始化的常量。例如,FactoryGirl工作正常,您的变量没有正确实例化@user对象。当连接不是datbase表字段时,您可能有一个对连接的引用 如果是MySQL问题,则会出现与ActiveRecord相关的错误消息 如果要在测试之前/之后清理数据库,请尝试使用此gem。它工作得很好。 下面是我在中配置RSpec的方式
小心。。。更不用说工厂的妻子了!那就更难摧毁了!因此,升级前请小心-
RSpec.configure do |config|
config.before(:suite) do
DatabaseCleaner.strategy = :transaction
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each) do
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
end