#ruby-on-rails #ruby-on-rails-3
#ruby-on-rails #ruby-on-rails-3
Вопрос:
Я использую Rails 3.0.1 и Rspec 2.0.1. Я следую руководству М. Хартла по Ruby on Rails, и у меня проблема с неудачными тестами на уроке 5: заполнение макета.
Когда я запускаю автотестирование и постоянно получаю эту ошибку и, похоже, не могу понять, почему:
Failures:
1) UsersController GET 'new' should have the right title
Failure/Error: response.should have_selector('title', :content => "Sign Up")
expected following output to contain a <title>Sign Up</title> tag:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Ruby on Rails Tutorial Sample App | Sign up</title>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js""></script>
<![endif]--><link href="/stylesheets/blueprint/screen.css?1313951692" media="screen" rel="stylesheet" type="text/css">
<link href="/stylesheets/blueprint/print.css?1313951692" media="media" rel="stylesheet" type="text/css">
<!--[if lt IE 8]><link href="/stylesheets/blueprint/ie.css?1313951692" media="screen" rel="stylesheet" type="text/css" /><[endif]--><link href="/stylesheets/custom.css?1319319986" media="screen" rel="stylesheet" type="text/css">
</head>
<body>
<div class="container">
<nav class="round"><ul>
<li><a href="/">Home</a></li>
<li><a href="/help">Help</a></li>
<li><a href="#">Sign in</a></li>
</ul></nav></header><section class="round"><h1>Users#new</h1>
<p>Find me in app/views/users/new.html.erb</p>
</section><footer><nav class="round"><ul>
<li><a href="/about">About</a></li>
<li><a href="/contact">Contact</a></li>
<li><a href="http://news.railstutorial.org">News</a></li>
<li><a href="http://railstutorial.org">Rails Tutorial</a></li>
</ul></nav></footer>
</div>
</body>
</html>
# ./spec/controllers/users_controller_spec.rb:14:in `block (3 levels) in <top (required)>'
Ответ №1:
Проблема, с которой вы столкнулись, заключается в том, что в вашем тесте у вас
response.should have_selector('title', :content => "Sign Up")
Но ваш HTML-код
<title>Ruby on Rails Tutorial Sample App | Sign up</title>
Ваш тест и исходный код HTML не совпадают. Введите верхний регистр «up» в исходном коде, и все будет готово.
Комментарии:
1. @TomKim Да, мы все это делаем. Не так давно (менее недели назад) я проделал то же самое, работая с учебником. Кроме того, я вижу, вы здесь новичок. Рядом с моим ответом есть серая галочка, если я предоставил правильное решение, вы должны проверить его, чтобы показать, что на этот вопрос есть приемлемый ответ. Если вы будете задавать вопросы в будущем, у вас будет больше шансов получить лучший ответ, если у вас высокий процент принятых ответов.
Ответ №2:
Я думаю, это проблема случая. Содержимое не обязательно должно совпадать в точности, но случай соответствует.
Да…то, что сказал Ной.