質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

テスト駆動開発

テスト駆動開発は、 プログラム開発手法の一種で、 プログラムに必要な各機能をテストとして書き、 そのテストが動作する必要最低限な実装を行い コードを洗練させる、といったサイクルを繰り返す手法の事です。

Q&A

解決済

1回答

1256閲覧

rails tutorial 4章 テストに失敗してしまう

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

テスト駆動開発

テスト駆動開発は、 プログラム開発手法の一種で、 プログラムに必要な各機能をテストとして書き、 そのテストが動作する必要最低限な実装を行い コードを洗練させる、といったサイクルを繰り返す手法の事です。

0グッド

1クリップ

投稿2020/10/08 02:40

HTMLの記述のみですが、
testを実行すると以下の様に失敗してしまいます。

ubuntu:~/environment/sample_app (rails-flavored-ruby) $ rails test Running via Spring preloader in process 9215 Started with run options --seed 39178 FAIL["test_should_get_about", #<Minitest::Reporters::Suite:0x00005584bd8c6b48 @name="StaticPagesControllerTest">, 1.0102913549999357] test_should_get_about#StaticPagesControllerTest (1.01s) <About | Ruby on Rails Tutorial Sample App> expected but was <About|Ruby on Rails Tutorial Sample App>.. Expected 0 to be >= 1. test/controllers/static_pages_controller_test.rb:20:in `block in <class:StaticPagesControllerTest>' FAIL["test_should_get_contact", #<Minitest::Reporters::Suite:0x00005584bd93fde0 @name="StaticPagesControllerTest">, 1.0231368189997738] test_should_get_contact#StaticPagesControllerTest (1.02s) <Contact | Ruby on Rails Tutorial Sample App> expected but was <Contact|Ruby on Rails Tutorial Sample App>.. Expected 0 to be >= 1. test/controllers/static_pages_controller_test.rb:26:in `block in <class:StaticPagesControllerTest>' FAIL["test_should_get_help", #<Minitest::Reporters::Suite:0x00005584bd9be0a0 @name="StaticPagesControllerTest">, 1.0346855889993094] test_should_get_help#StaticPagesControllerTest (1.04s) <Help | Ruby on Rails Tutorial Sample App> expected but was <Help|Ruby on Rails Tutorial Sample App>.. Expected 0 to be >= 1. test/controllers/static_pages_controller_test.rb:14:in `block in <class:StaticPagesControllerTest>' FAIL["test_should_get_home", #<Minitest::Reporters::Suite:0x00005584bda67768 @name="StaticPagesControllerTest">, 1.0463882349995401] test_should_get_home#StaticPagesControllerTest (1.05s) <Home | Ruby on Rails Tutorial Sample App> expected but was <Home|Ruby on Rails Tutorial Sample App>.. Expected 0 to be >= 1. test/controllers/static_pages_controller_test.rb:8:in `block in <class:StaticPagesControllerTest>' 4/4: [==================================================================================================================] 100% Time: 00:00:01, Time: 00:00:01 Finished in 1.05075s 4 tests, 8 assertions, 4 failures, 0 errors, 0 skips

テストファイル、helper、erbファイル、ルーティンングは以下の様に記述しています。

テストコード

require 'test_helper' class StaticPagesControllerTest < ActionDispatch::IntegrationTest test "should get home" do get static_pages_home_url assert_response :success assert_select "title", "Home | Ruby on Rails Tutorial Sample App" end test "should get help" do get static_pages_help_url assert_response :success assert_select "title", "Help | Ruby on Rails Tutorial Sample App" end test "should get about" do get static_pages_about_url assert_response :success assert_select "title", "About | Ruby on Rails Tutorial Sample App" end test "should get contact" do get static_pages_contact_url assert_response :success assert_select "title", "Contact | Ruby on Rails Tutorial Sample App" end end

共通テンプレerbファイル

<html> <head> <title><%= full_title(yield(:title)) %></title> <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> </head> <body> <%= yield %> </body> </html>

helper.rb

module ApplicationHelper def full_title(page_title='') base_title = "Ruby on Rails Tutorial Sample App" if page_title.empty? base_title else page_title + "|" + base_title end end end

ルーティング

Rails.application.routes.draw do root 'static_pages#home' get 'static_pages/home' get 'static_pages/help' get 'static_pages/about' get 'static_pages/contact' # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end

試したこと

<Home | Ruby on Rails Tutorial Sample App> expected but was
<Home|Ruby on Rails Tutorial Sample App>..
とのことで、試しに以下の様に|の前後で半角スペースを消す様に記述してみました。

test "should get home" do 略 assert_select "title", "Home|Ruby on Rails Tutorial Sample App" end

しかし、

FAIL["test_should_get_home", #<Minitest::Reporters::Suite:0x00005584ba1984f0 @name="StaticPagesControllerTest">, 1.0933848129998296] test_should_get_home#StaticPagesControllerTest (1.09s) <Home|Ruby on Rails Tutorial Sample App> expected but was <Home|Ruby on Rails Tutorial Sample App>.. Expected 0 to be >= 1. test/controllers/static_pages_controller_test.rb:8:in `block in <class:StaticPagesControllerTest>'

とのことでした。expect通りでいいじゃないかと思いましたが、全然違う様です。

失敗の原因が分かる方いらっしゃいましたら、お助けください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

失敗の原因については予想がついているのですが・・・今後のために対応方法をご紹介します。


公式サイトや書籍を写経して期待通りの結果にならない場合、ほとんどの原因が転記ミスです。(たまに公式や書籍が間違っている場合もありますが・・・)

ということで、目視ではなく、ツールを使って一つ一つのコードを比較してみましょう。

テキスト比較ツール:デュフフ

投稿2020/10/08 06:09

no1knows

総合スコア3365

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/10/08 08:05

ありがとうございます。解決しました。転記ミスでした。 コピーアンドペーストしたら普通に動きました。 テキスト比較ツールに関して、今後の参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問