FactoryGirl没有数据库

时间:2016-08-26 22:53:51

标签: ruby-on-rails ruby rspec

我有一个遗留数据库,我的ruby on rails应用程序试图获取一些数据,我想围绕一些功能编写一些测试。我没有迁移,因为这个数据库是另一个部门的责任。

我为我想要测试的AR模型设置了FactoryGirl。我使用build_stubbed方法,但似乎Rails或Rspec对尝试连接数据库很着迷,即使我不想保存任何内容。

每次运行测试时都会出现此错误:

 ActiveRecord::StatementInvalid:
   PG::UndefinedTable: ERROR:  relation "yourTable" does not exist
         ^

就像我之前说过的那样,我的目标是不保存任何我想要能够测试某些功能的东西,而根本不需要与peristence层进行交互。

如何配置Rspec / FactoryGirl,让我根本不为这些特定型号连接数据库?

1 个答案:

答案 0 :(得分:0)

您是否考虑过只使用Struct类?我不认为FactoryGirl会允许您在没有现有表的情况下创建存根,但是如果Rails中不存在表,可以尝试将Struct分配给测试中的常量。

YourTable = Struct.new(:column_name1, :column_name2)
instance_of_table = YourTable.new(value1, value2)

instance_of_table.column_name1 => value1

This article by Philip Brown详细介绍了Structs和OpenStructs的使用,希望这也会有所帮助。