2016-12-09 9 views
0

Iは、N個のオブジェクトを作成するための器具に埋め込まルビーを使用する:テストに組み込みルビを使用することはできますか?

<% 30.times do |n| %> 
micropost_<%= n %>: 
    content: <%= Faker::Lorem.sentence(5) %> 
    created_at: <%= 42.days.ago %> 
    user: michael 
<% end %> 

は、上記n個のオブジェクトをテストするために、試験中に埋め込まルビーを使用することが可能ですか?
は、私は、各オブジェクトを反復処理すると、次のように表明を行う必要があります:

ActiveRecord::Base.connection.execute("TRUNCATE microposts") 
(1..30).each do |num| 
    assert_nil microposts(:micropost_<%= num %>) 
end 

答えて

1

おそらくこれを行うにはより良い方法がありますが、単純な解決策は次のようになります。

の代わりに:

assert_nil microposts(:micropost_<%= num %>) 

は持っている:

assert_nil microposts("micropost_#{num}".to_sym) 

編集:

をあなたの質問に答えるために。いいえ、.rbファイルに埋め込みルビエスケープを使用することはできません。それはすでにルビーです。

0

テストはちょうどルビーいるので、あなたはRSpecのかMiniTestでルビー(または任意のテストフレームワーク)を使用することができます。

+0

通常、erbファイルで使用できる<%または<%=構文をテキストで使用できますか? – Asarluhi

+0

これはERBです。使用する必要はありません。なぜそれが必要なのかわかりません。 'puts my var:#{my_var} ''などのようなものを使ってテキストを補間することができます。 –

関連する問題