从方法中选择随机哈希 Ruby
Choose Random Hash from Method Ruby
我可能会和这个一起去那里。
我将 Cucumber Capybara 与 Ruby 一起使用,我想创建一些特定数据的散列,然后让我的测试随机选择这些散列之一。这能做到吗?
我的方法包含散列:
def random_vehicles
a1 = {:vrm => 'A1',
:id => '11111111111',
:post_code => 'AA11AA'
}
b1 = {:vrm => 'B1',
:id => '22222222222',
:post_code => 'BB11BB'
}
end
如何在该方法中随机选择两个哈希之一?如:
sample = random_vehicles.sample # This doesn't work
谢谢
尝试
def random_vehicles
a1 = {:vrm => 'A1',
:id => '11111111111',
:post_code => 'AA11AA'
}
b1 = {:vrm => 'B1',
:id => '22222222222',
:post_code => 'BB11BB'
}
[a1, b1]
end
vehicles = random_vehicles
p vehicles.sample
您可以通过以下方式修改方法,使您的初始 random_vehicles.sample
发挥作用:
def random_vehicles
[
{:vrm => 'A1',
:id => '11111111111',
:post_code => 'AA11AA'
},
{:vrm => 'B1',
:id => '22222222222',
:post_code => 'BB11BB'
}
]
end
random_vehicles.sample
#=> {:vrm=>"B1", :id=>"22222222222", :post_code=>"BB11BB"}
random_vehicles.sample
#=> {:vrm=>"A1", :id=>"11111111111", :post_code=>"AA11AA"}
请注意,方法名称很重要:它取决于您实际希望该方法成为什么 return。在这种情况下,方法名称是 sample_vehicles
(复数),所以感觉很自然,它 return 是一个对象集合。
如果您已经 return 一辆车需要它,那么您应该更改方法并重命名它:
def random_vehicle
[
{:vrm => 'A1',
:id => '11111111111',
:post_code => 'AA11AA'
},
{:vrm => 'B1',
:id => '22222222222',
:post_code => 'BB11BB'
}
].sample
end
random_vehicle
#=> {:vrm=>"B1", :id=>"22222222222", :post_code=>"BB11BB"}
random_vehicle
#=> {:vrm=>"B1", :id=>"22222222222", :post_code=>"BB11BB"}
random_vehicle
#=> {:vrm=>"A1", :id=>"11111111111", :post_code=>"AA11AA"}
我可能会和这个一起去那里。
我将 Cucumber Capybara 与 Ruby 一起使用,我想创建一些特定数据的散列,然后让我的测试随机选择这些散列之一。这能做到吗?
我的方法包含散列:
def random_vehicles
a1 = {:vrm => 'A1',
:id => '11111111111',
:post_code => 'AA11AA'
}
b1 = {:vrm => 'B1',
:id => '22222222222',
:post_code => 'BB11BB'
}
end
如何在该方法中随机选择两个哈希之一?如:
sample = random_vehicles.sample # This doesn't work
谢谢
尝试
def random_vehicles
a1 = {:vrm => 'A1',
:id => '11111111111',
:post_code => 'AA11AA'
}
b1 = {:vrm => 'B1',
:id => '22222222222',
:post_code => 'BB11BB'
}
[a1, b1]
end
vehicles = random_vehicles
p vehicles.sample
您可以通过以下方式修改方法,使您的初始 random_vehicles.sample
发挥作用:
def random_vehicles
[
{:vrm => 'A1',
:id => '11111111111',
:post_code => 'AA11AA'
},
{:vrm => 'B1',
:id => '22222222222',
:post_code => 'BB11BB'
}
]
end
random_vehicles.sample
#=> {:vrm=>"B1", :id=>"22222222222", :post_code=>"BB11BB"}
random_vehicles.sample
#=> {:vrm=>"A1", :id=>"11111111111", :post_code=>"AA11AA"}
请注意,方法名称很重要:它取决于您实际希望该方法成为什么 return。在这种情况下,方法名称是 sample_vehicles
(复数),所以感觉很自然,它 return 是一个对象集合。
如果您已经 return 一辆车需要它,那么您应该更改方法并重命名它:
def random_vehicle
[
{:vrm => 'A1',
:id => '11111111111',
:post_code => 'AA11AA'
},
{:vrm => 'B1',
:id => '22222222222',
:post_code => 'BB11BB'
}
].sample
end
random_vehicle
#=> {:vrm=>"B1", :id=>"22222222222", :post_code=>"BB11BB"}
random_vehicle
#=> {:vrm=>"B1", :id=>"22222222222", :post_code=>"BB11BB"}
random_vehicle
#=> {:vrm=>"A1", :id=>"11111111111", :post_code=>"AA11AA"}