2013-01-02 49 views
0

我有一個單元測試,我被磕碰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"]電話?

感謝

+3

你試過'stub(:[],...)'? –

+0

Lee是正確的,使用:[](和:[] =如果你還需要這個)。 @李賈維斯,你應該擴大到一個答案,所以它可以被接受和投票:) –

+0

@李賈維斯你可以擴大?我已經嘗試過使用'stub(:[],ext_fb_place_id:SecureRandom.random_number(20_000_000))',但是我在支架內部存在一些麻煩。 – Huy

回答

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。