2016-12-09 24 views
0

我的嵌入式紅寶石燈具創建n個對象:可以在測試中使用嵌入式ruby嗎?

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

是否可以使用嵌入的Ruby在測試中,爲了測試上述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文件中使用嵌入的ruby轉義。它已經是紅寶石了。

0

您可以使用Ruby中的RSpec或MINITEST(或其他測試框架),因爲測試只是紅寶石。

+0

我可以在文本中使用通常在erb文件中可用的<%或<%=語法嗎? – Asarluhi

+0

這就是ERB - 你不應該使用它......不知道爲什麼你需要它。你可以使用'puts my var:#{my_var}''或類似的東西插入文本。 –

相關問題