是否可以在测试中使用嵌入式红宝石?

时间:2016-12-09 15:33:44

标签: ruby-on-rails testing embedded-ruby

我在灯具中使用了嵌入式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

2 个答案:

答案 0 :(得分:1)

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

而不是:

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

有:

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

编辑:

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

答案 1 :(得分:0)

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