当前位置: 首页 > 知识库问答 >
问题:

Factory Girl:未初始化的常量非rails项目

颛孙钱青
2023-03-14

我希望有人能帮助我解决我在尝试使用factory_girl时收到的未初始化常量错误的问题。我知道类似的问题已经发布在堆栈溢出上,我试图在这些帖子中找到解决方案,但无济于事。

我有一个非rails项目,我正在使用rspec进行测试。我希望使用factory_girl来创建测试数据。

所以我把我的工厂定义在一个名为users.rb的文件中,在spec/工厂文件夹中。工厂如下:

FactoryGirl.define do
   factory :user do
   email 'root@test.com'
   password 'TestPass'
 end

终止

然后我做了一个测试:

require 'spec_helper'

describe "login tests" do

  it "should allow me to login" do
    visit('http://mytestapp.com')
    user = FactoryGirl.build(:user)
    login(user.email, user.password)
    should have_content('Welcome!')
  end

end

在我的spec helper中

require 'factory_girl'
require_rel('factories')

RSpec.configure do |config|
  config.include FactoryGirl::Syntax::Methods
end

但是,当我运行测试时,我收到错误消息“未初始化常量用户”

请注意,在spec\u helper文件中,我使用gem requiure\u rel来查找factories文件夹。我试着用FactoryGirl。find\u definitions,但当我使用它时,收到错误消息“Factory not registered:user”。因此,使用require\u rel,似乎至少找到了工厂。在我的测试文件中,我还尝试使用以下方法

user = FactoryGirl.create(:user)

但是我得到了同样的错误消息。

有人知道我做错了什么吗?非常感谢您的帮助!!

谢谢

共有2个答案

袁元明
2023-03-14

我相信FactoryGirl在引用相关常量时(例如,在引用用户时加载应用程序/模型/用户.rb)依赖于rspec rails gem来定位和自动加载模型。如果你想在没有宝石的情况下操作,你必须自己启用自动加载。

贺季
2023-03-14

这可能不是FactoryGirl的问题<代码>RSpec看不到您的用户类。因此,您应该需要具有User类的文件。最好是描述用户,而不是登录测试。

 类似资料:
  • 我有一个模型,category_count,我想属于2个模型,一个文章模型和一个类别模型。当我尝试访问服务器/管理员/文章时,我得到一个错误未初始化的常量Article::CategoryCount。我使用active_admin进行管理。当我这样做时:服务器/文章/1/category_counts我也得到一个错误未初始化的常量类别CountsController我使用Rails 4 这是我ca

  • 本文向大家介绍tensorflow 初始化未初始化的变量实例,包括了tensorflow 初始化未初始化的变量实例的使用技巧和注意事项,需要的朋友参考一下 今日在Stack Overflow上看到一个问如何只初始化未初始化的变量,有人提供了一个函数,特地粘贴过来共大家品鉴: 通过tf.global_variables()返回一个全局变量的列表global_vars, 然后以python列表解析式的

  • 我假设使用以下元素按以下顺序构建一个字节数组: 对称加密的AES密钥(对于AES 128有一个随机密钥,对于AES 128有一个随机初始化向量。在CBC模式下使用AES 128和PKCS5填充进行加密。在加密之前,文本用UTF-8进行编码) AES IV 加密消息(使用ECB模式下的RSA算法和PKCS1填充、先前生成的密钥和消息收件人的公钥) 我正在做的是获取每个参数的长度,以便创建新的byte

  • 我在这里看到过类似的问题,如果这看起来像是重复的,我很抱歉,但是类似问题的答案对我没有帮助。所以我有一个方法,它是类的一部分。这里是: 错误表明变量min可能尚未初始化。我不明白这怎么可能是真的。我觉得变量不可能不在for循环之外初始化。请帮忙。谢谢

  • 问题内容: 将我的Rails应用程序移动到新服务器上,并且必须安装一些gem依赖项。但是,安装mysql gem后,每当我尝试运行涉及mysql数据库的rake命令时,都会收到错误,未初始化的常量MysqlCompat :: MysqlRes。似乎只有在需要mms2r gem时才会出现此错误。有人听说过吗?我正在运行mysql 2.8.1 gem。 问题答案: 在我的Mac OS X 10.6上,