Ruby on rails 如何为mongoid的哈希类型字段执行pickle步骤

Ruby on rails 如何为mongoid的哈希类型字段执行pickle步骤,ruby-on-rails,pickle,mongoid,Ruby On Rails,Pickle,Mongoid,将未定义的步骤显示为: class Person include Mongoid::Document field :address, :type => Hash end Given a person exist with address: {:city => "city", :street => "street"} 如何使其成为标准的pickle步骤?我认为,如果不创建自己的步骤定义(这非常简单),就无法在一个步骤中创建人员和地址。您可以将功能拆分为两行,如下所

将未定义的步骤显示为:

class Person
  include Mongoid::Document

  field :address, :type => Hash

end

Given a person exist with address: {:city => "city", :street => "street"}

如何使其成为标准的pickle步骤?

我认为,如果不创建自己的步骤定义(这非常简单),就无法在一个步骤中创建人员和地址。您可以将功能拆分为两行,如下所示:

Given /^a person exists with address: \{:city => "([^"]*)", :street => "([^"]*)"\}$/ do |arg1, arg2|
  pending # express the regexp above with the code you wish you had
end

看来我解释不清楚。实际上我需要的是,如果属性是Hash类型的,那么如何能够使用pickle向属性添加Hash类型的值呢?我可以使用上面解释的一般pickle步骤添加字符串/整数类型的值。关键是当我们使用pickle进行测试时,如果属性是hash类型,我们如何向属性添加值?哦,我明白了。那么,您需要自己的步骤定义。Pickle还不允许传递属性值的数组或散列。
Given an address exists with city: "Townsville" and street: "123 Main St."
And a person exists with address: the address