0

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

2 回答 2

1

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

代替:

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

有:

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

编辑:

回答你的问题。不,您不能在 .rb 文件中使用嵌入式 ruby​​ 转义。已经是红宝石了。

于 2016-12-09T16:57:48.260 回答
0

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

于 2016-12-09T16:23:52.523 回答