将值字符串哈希值存储为值,而不是在rails测试中使用点运算符

时间:2013-01-02 21:31:06

标签: ruby-on-rails ruby ruby-on-rails-3 rspec

我有一个单元测试,我使用

place.ext_fb_place_id进行存根
let(:place) { stub(:place, ext_fb_place_id: SecureRandom.random_number(20_000_000), facebook_metadata: {category: nil}, lat: 33.129147303422, lng: -96.653188420995, name: "In & Out Burger") }

我不得不更改我的代码以使用字符串键而不是点运算符。也就是说,我必须使用place["ext_fb_place_id']来获取正确的值。但是,这会引发以下错误:

Stub :place received unexpected message :[] with ("ext_fb_place_id")

如何存根[]方法以便我可以使用place["ext_fb_place_id"]place["lat"]等来电?

由于

1 个答案:

答案 0 :(得分:0)

我能够使用以下内容存根:

ext_fb_place_id = SecureRandom.random_number(20_000_000)

let(:place) { stub(:place, ext_fb_place_id: ext_fb_place_id, facebook_metadata: {category: nil}, lat: 33.129147303422, lng: -96.653188420995, name: "In & Out Burger", :[] => ext_fb_place_id)}

感谢@LeeJarvis和@JimDeville。