【问题标题】:How do you define a text field with FactoryBot?您如何使用 FactoryBot 定义文本字段?
【发布时间】:2020-04-17 17:37:44
【问题描述】:

我正在使用 FactoryBot 来帮助测试我的 Rails 应用程序。

效果很好,只是在尝试定义文本字段时出错。

对于字符串,您只需使用name { "John" },但我的数据库中有一行方法,它是一个文本字段。当我尝试按如下方式定义该行时:

method { "Some method here" }

返回

ArgumentError:
  wrong number of arguments (given 0, expected 1)

有人知道用 FactoryBot 定义文本字段的语法吗?

【问题讨论】:

  • 一种“行法”,怎么样?
  • 我真的认为没有足够的信息来回答这个问题。如果它是您为其创建工厂的模型上的文本字段属性,那么工厂内的name { 'John } 应该可以工作。如果您对列进行了唯一性验证,它应该会失败并出现不同的错误。如果你在 rspec 中声明一个 let var,那么你会做类似let(:user) { create :user, name: 'John' } 的事情。您能否添加有关模型和工厂的更多详细信息?

标签: ruby-on-rails ruby rspec factory-bot rspec-rails


【解决方案1】:

method 由 Ruby 定义在 Object 上。如果您的表格列被称为“方法”,您将遇到各种问题。您可能能够解决此特定错误,但可能会出现更多错误。我最好的建议是重命名您的专栏并继续前进。

编辑:澄清一下 - 这与您的列类型无关。这与您的列被命名为“方法”有关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 2021-07-12
    • 2019-01-31
    • 2023-04-01
    相关资源
    最近更新 更多