IO.read ("# ... / layouts / application.html.erb") возвращает строку 'applicationatio ... s-track' вместо 'application' - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть следующий тест rspec:

scenario 'layout file loads assets' do
    layout_file = IO.read("#{dummy_app_path}/app/views/layouts/application.html.erb")

    expect(layout_file).to match(/stylesheet_link_tag 'application'/)
  end

тест красный, потому что:

expected "<!DOCTYPE html>\n<html>\n<head>\n  <title>DummyApp</title>\n  <%= stylesheet_link_tag    'applicatio...s-track' => true %>\n 

Зачем возвращать Applicatio ... s-track ?Почему нет «приложения»?Не могли бы вы объяснить мне.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 01 февраля 2019

Попробуйте изменить свое ожидание, как показано ниже:

expect(layout_file).to match(/stylesheet_link_tag\s+application'/)

Если вы посмотрите на сообщение об ошибке и фактический источник HTML, то увидите следующее:

<%= stylesheet_link_tag    'application'

Обратите внимание на постороннеепробелы после stylesheet_link_tag.Вот как он всегда генерируется из шаблона (насколько я знаю)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...