2016-12-09 2 views
0

я использовал встроенный рубин в светильниках для создания п объектов:Можно ли использовать встроенные рубины в тестах?

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

Можно ли использовать встроенный рубин в тестах, чтобы проверить вышеуказанные п объектов?
я должен был бы пройти по каждому объекту и сделать утверждения следующим образом:

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) 

Edit:

Чтобы ответить на ваш вопрос. Нет, вы не можете использовать встроенный ruby ​​escape в файле .rb. Это уже рубин.

0

Вы можете использовать рубин в RSpec или MiniTest (или любой другой тест рамки), так как тесты только Руби.

+0

Могу ли я использовать в текстах синтаксис <% или <% =, который обычно доступен в файлах erb? – Asarluhi

+0

Это ERB - вы не должны использовать его ... не знаете, зачем вам это нужно. Вы можете интерполировать текст, используя что-то вроде 'puts my var: # {my_var}" или подобное. –