是否可以在测试中使用嵌入式 ruby?

Is it possible to use embedded ruby in tests?

我在固定装置中使用嵌入式 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

您可以在 RSpec 或 MiniTest(或任何测试框架)中使用 Ruby,因为测试只是 Ruby.

可能有更好的方法,但一个简单的解决方案如下。

而不是:

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

有:

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

编辑:

回答你的问题。不,您不能在 .rb 文件中使用嵌入式 ruby 转义符。已经 ruby.