Неправильно ли соответствует рендеринг шаблона RSpec / Rails?("_x" соответствует "_xy"?) - PullRequest
0 голосов
/ 12 декабря 2011

Или я что-то не так понимаю?

Частичная жизнь в:

app/views/admin/command_templates/_fillerup.html.erb

Эта спецификация проходит (в каталоге представления нет "fill" или "_fill"):

describe "GET fillerup" do
  it "assigns some stuff and renders a partial" do
    should render_template "admin/command_templates/_fill"     # I expected failure
    should render_template "admin/command_templates/_fillerup" # "Correct" test
  end
end

Это терпит неудачу (как я и ожидал):

describe "GET fillerup" do
  it "assigns some stuff and renders a partial" do
    should render_template "admin/command_templates/_fillerupp" # extra "p"
  end
end

Он действует , как будто он выполняет start_with? на пути, возможно, игнорируя расширения или..?

rspec-рельсы 2.7.0, рельсы 3.1.2;другая информация доступна по запросу.

Проверка поведения существует (или не существует) будет полезна в качестве проверки работоспособности.

1 Ответ

2 голосов
/ 12 декабря 2011

Проверьте код для render_template - многие из этих методов выполняют сопоставление с шаблоном через регулярное выражение, которое будет соответствовать аналогично starts_with?, по крайней мере, в том же смысле, что шаблон "Джо" будет соответствоватьСтрока «Джо Смит» и «Джо Бланк».Я не делаю здесь справедливое сопоставление с образцом, но это всего лишь пример.

Такое сопоставление с образцом в основном для удобства, насколько я понимаю, так что вам не нужно быть слишком конкретным в своемтесты, что делает вашу тестовую среду немного менее хрупкой.Как правило, с этим можно справиться, не беспокоясь о том, что у шаблонов часто нет столь похожих имен.

Если вам нужно сопоставить только определенный шаблон (а не другой), вы можете добавить дополнительный условный тест, например:

should render_template('x')
should_not render_template('xy')

... или что-то подобное, что должноэффективно отфильтровывать шаблоны, которые начинаются со схожих имен, но не являются шаблонами, которые вас интересуют.

...