如何创建假数据以在 rails 控制器上测试我的 ruby

How to create a fake data for testing my ruby on rails controller

我想用 rails-rspec gem 测试我的 rails 控制器。我已经为测试设置了所有东西(运行 rspec 的所有命令,安装 rspec-gaurd 等),但是我不确定使用什么来创建假数据将它传递给我的控制器。为此我选择了 factory-girl-rails?(如果这是错误的 gem 或者我需要知道更好的东西请告诉我)。我的控制器参数应该是这样的:

{
  "name": "example",
  "job" : "TheJob"
  "config": "{THIS IS A HASH}"
}

我的工厂是这样的:

这就是我的 rspec 测试的样子:

我的考试形式对吗?因为我得到一个错误

Trait not registered: config_info

当守卫运行代码!

工厂女孩可用于创建数据,根据您的需要,它可能有点矫枉过正。但是你应该可以做这样的事情..

FactoryGirl.define do
  factory :user do
    name "myName"
    last "myLast"
    config { { family: "MyFamily", parent: "MyParent" } } 
  end
end

注意使用 2 组 { },因为您需要在工厂的块分配形式中传递散列。

或匹配您请求的参数(与您发布的工厂相反)。

FactoryGirl.define do
      factory :user do
        name "myName"
        job "TheJob"
        config { { family: "MyFamily", parent: "MyParent" } } 
      end
    end