我在灯具中使用了嵌入式Ruby来创建n个对象:
<% 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
答案 0 :(得分:1)
这可能是一种更好的方法,但一个简单的解决方案如下。
而不是:
assert_nil microposts(:micropost_<%= num %>)
有:
assert_nil microposts("micropost_#{num}".to_sym)
编辑:
回答你的问题。不,您不能在.rb文件中使用嵌入式ruby转义。它已经是红宝石了。
答案 1 :(得分:0)
您可以在RSpec或MiniTest(或任何测试框架)中使用Ruby,因为测试只是Ruby。