0

この質問は、ユーザー ページの 50 個のマイクロポストがすべて表示されることを確認するために私が行ったテストに関するものです。

私はこのrspecコードを持っています:

          before(:all) { 50.times {FactoryGirl.create(:micropost, 
                                   user:user, content: "Lorem Ipsum") } }

次のように、各コンテンツをより動的にしたいと考えています。

"Lorem Ispum 0"
"Lorem Ipsum 1"
"Lorem Ipsum 2"
...

私は書いてみました:

let(:count_helper) { 0 }
before(:all) { 50.times {FactoryGirl.create(:micropost, 
                                       user:user, 
                                       content: "Lorem Ipsum #{count_helper}") 
                         count_helper += 1} }

ここで失敗します:

count_helper += 1 

どうすれば正しく書けるでしょうか?

4

2 に答える 2

2
let(:count_helper) { 0 }
before(:all) { 50.times {FactoryGirl.create(:micropost, 
                                       user:user, 
                                       content: "Lorem Ipsum #{count_helper}");
                                       count_helper += 1 } }

末尾のセミコロンに注意してくださいFactoryGirl.create(:micropost, user:user, content: "Lorem Ipsum #{count_helper}")

単一行ブロック構文を使用しているため、count_helper += 1が別のステートメントであることを Ruby に明示的に伝える必要があります。

于 2012-08-25T12:28:38.417 に答える
0

コードの書き方は次のとおりです。

    before(:all) { 50.times do |count|
                     FactoryGirl.create(:micropost, user:user, 
                     content: "Lorem Ipsum #{count}") 
                   end }

2つの間違いがありました:

  1. 内部で1行しか許可されていない場合に2行のコード行を作成する{}- 私はそれをに変更しましたdo ... end

  2. |count|を追加しました ループをカウントするのに役立つループへの変数

于 2012-08-25T12:40:32.023 に答える