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

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

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

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

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1202閲覧

RSpecでchartkickをテストしたい

T.Adams

総合スコア40

Ruby on Rails 5

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

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2020/06/22 10:48

編集2020/06/23 11:12

はじめに

RSpecでRuby on Railsのテストを実施中です。

わからないこと

テストの記述方法がわかりません。

chartkickというGemを使用し、Viewにグラフを表示しています。しかし以下の2点を確認するテストをどう記述すればよいかわかりません。

Rspecのソースを以下に載せました。「ジャンルチャートが正しく表示されている」テストでに以下の2点を確認する内容のテストを記述したいです。

  • 円グラフ内の凡例に記載された「音楽」が存在すること
  • カーソルを対象の項目上に乗せると、数字が出ること

Rspec

1require "rails_helper" 2 3 describe "統計情報確認ページ", type: :system do 4 describe "グラフチェック" do 5 before do 6 @user_a = FactoryBot.create(:user, name: "user_a", email:"user_a@example.com", password: "password") 7 FactoryBot.create(:post, genre: "音楽", youtube_url:"https://www.youtube.com/watch?v=1jIiYeQg_2Q", comment:"This is user_a comment", user: @user_a) 8 visit login_path 9 fill_in "session[email]", with: "user_a@example.com" 10 fill_in "session[password]", with: "password" 11 click_button "ログイン" 12 end 13 14 it "ジャンルチャートが正しく表示されている" do 15 click_link "統計情報" 16 // ここで円グラフ内の凡例に音楽が存在することを確認したい 17 end 18 end 19 end

テスト対象のViewの一部抜粋です。

slim

1.container 2 .row.row-eq-height 3 .col-md-6.tex-center 4 div.card.card-chart 5 div.card-card-header 6 | ジャンル別チャート 7 div.card-body 8 = pie_chart Post.group(:genre).count

ViewをHTML形式で表示すると、以下のようになります。

HTML

1<div class="card card-chart"> 2 <div class="card-card-header"></div> 3 ジャンル別チャート 4 <div class="card-body"> 5 <div id="chart-1" style="height: 300px; width: 100%; text-align: center; color: #999; line-height: 300px; font-size: 14px; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Arial, Helvetica, sans-serif;"> 6 <div class="chartjs-size-monitor"> 7 <div class="chartjs-size-monitor-expand"> 8 <div class=""></div> 9 </div> 10 <div class="chartjs-size-monitor-shrink"> 11 <div class=""></div> 12 </div> 13 </div> 14 <canvas width="506" height="600" class="chartjs-render-monitor" style="display: block; height: 300px; width: 253px;"></canvas> 15 </div> 16 <script type="text/javascript">new Chartkick["PieChart"]("chart-1", [["アニメ",1],["ゲーム",1],["音楽",2]], {});</script> 17 </div> 18</div>

イメージ説明

補足

capybaraも使用しています

バージョン情報

  • Rails 5.2.4
  • Ruby 2.7.2

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問