テストについて 近畿大学大学院 田中大介 資料:

Slides:



Advertisements
Similar presentations
ECLフレームワー ク 近畿大学 理工学部 情報学 科 間野 哲 弥.
Advertisements

1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
Ruby on Rails (RoR) 講習会 近畿大学大学院 田中大介. 本日の目標 Web アプリケーションを作ろう!
情報アプリケーション1 2006 年 10 月 12 日 第四回資料 担当 重定 如彦. 目次 データの送信とフォーム クイズ CGI 複数のパーツのデータの分割方法 配列変数.
1 安全性の高いセッション管理方 式 の Servlet への導入 東京工業大学 理学部 千葉研究室所属 99-2270-6 松沼 正浩.
第6回 JavaScript ゼミ セクション3-6 発表者 直江 宗紀. 組み込み関数  JavaScript に予め用意された関数  特定のオブジェクトに依存していない  単に関数名で呼び出すことが可能.
RailsによるAjaxの利用 回生 小野 実.
水曜パソコン講座 「Windows Update プログラム  を実行する手順」         を解説します.
UNIX利用法.
UNIX利用法 情報ネットワーク特論資料.
情報理工学部 情報システム工学科 ラシキアゼミ 3年 H 井奈波 和也
プログラミング 平成24年10月16日 森田 彦.
JavaScript プログラミング入門 2006/11/10 神津.
プログラミング基礎I(再) 山元進.
Ruby on Rails 勉強会 11月5日「土」 崔 昌権
CGS カーネルベース 変化するオブジェクトに    進化するデータベースを。.
3-1 MySQLについて 発表者:藤村元彦 自然言語処理研究室.
IO - 入出力 小西 亨.
MySQLに接続するデータベースプログラム
Excel による データベース入門 Ver /9.
SlothLib.Web.
第2章 数値の入力と変数 scanfと変数をやります.
エンタープライズアプリケーション II 第10回 / 2006年7月23日
Iアプリプログラミング その1  鳥居秀徳.
VBA H106077 寺沢友宏.
吉田和弘 株式会社ミッタシステム Rubyのすすめ 吉田和弘 株式会社ミッタシステム
プログラミング 平成23年10月19日 森田 彦.
Visual Studio 2005を使ったテスト.
JavaScript    プログラミング入門 3-2 Stringオブジェクト 2006/10/27 神津 健太.
卒研:データベースチーム 第4回 DOMを使った処理
変数のスコープの設計判断能力 を育成するプログラミング教育
JSFによるWebアプリケーション開発 第6回
Day3 Day4 Day3 Day4.
プログラミング 平成24年10月30日 森田 彦.
C++とオブジェクトデータベース入門 8.オブジェクトデータベースとは 森井 喬 Webページ
プログラミング演習3 第2回 GUIの復習.
QuestionnairToolの開発 中村太一.
VBScriptで ユニットテストをやってみる
プログラミング 平成25年11月5日 森田 彦.
Borland Delphi 6 でビジュアルプログラミング
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
EclipseでWekaのAPIを呼び出す
TCanvas BCB:TCanvasクラスでグラフィックを扱う。 TFormなどもプロパティとして持っている。
TDDとメソッドの外部設計 テストファーストの秘訣 2009/08 biac.
第7回JavaScriptゼミ セクション4-5 発表者 直江 宗紀.
3-3.テーブルを更新する 2004年 4月22日(木) 01T6074X 茂木啓悟.
Javaによる Webアプリケーション入門 第11回
プログラミングⅠ 平成30年10月22日 森田 彦.
TDD ってどんな感じ? FizzBuzz を作ってみる 2010/01/22 biac 1.
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
C言語 はじめに 2016年 吉田研究室.
アルゴリズムとプログラミング (Algorithms and Programming)
第6回レポート解説 条件1 条件2 条件3 月の入力 月、日、曜日の表示 日の入力 曜日の入力
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
dcNavi:デバッグ支援のための グラフベース推薦システム
Webページに動きを持たせるJavascript言語について 例題のプログラムを通して体験的に理解することとします。
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
Jakarta Struts (1) ソフトウェア特論 第10回.
JSPの基本 J2EE I (データベース論) 第8回 /
第5回 プログラミングⅡ 第5回
オブジェクト指向言語論 第五回 知能情報学部 新田直也.
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
プログラミング 平成28年10月25日 森田 彦.
第2章 数値の入力と変数 scanfと変数をやります.
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
Presentation transcript:

テストについて 近畿大学大学院 田中大介 資料:

テストの有用性 XP : 常に仕様が変化することが前提 ⇒ 何度もコードを書き直す ⇒ エラーを何度もチェックする ⇒ 手作業のチェックは時間がかかる ⇒ テストコードを使って時間を短縮 ⇒ テストを先に作り、そのテストをクリアする コードを書く(テストファースト)

テストの種類 ユニットテスト – モデルを対象 –test / unit にテストコードを格納 機能テスト – コントローラを対象 –test / functional にテストコードを格納

本日のお品書き 1. テストの実行環境を整える 2. ユニットテストを試してみる 3. 機能テストを試してみる

0 .プロジェクトの準備 プロジェクトを作成 –Product モデルを scaffold title : string description : text image_url : string price : integer

1.実行環境の準備 テストで使用するデータベースを準備す る 1. 設定 2. テーブルをコピー 3. テストデータを入力

テスト1・実行環境 1. 設定 –config / database.yml を同様に変更 –test 部分 adapter : sqlite3 database: db/test.sqlite3

テスト1・実行環境 2.テーブルをコピー –rake db:test:clone_structure を実行 (開発用 DB の構成をテスト DB にコピーす る)

テスト1・実行環境 3.テストデータを入力 – テストフィクスチャを用いる –test / fixtures / products.yml に記述 – 書式 データ名: カラム名:データ カラム名:データ : –

テスト2・ユニットテスト 流れ 1. テスト DB のすべてのデータが消える 2. テストデータ(フィクスチャのデータ)が 各テーブルにロードされる 3.setup メソッドを実行 4. テストメソッドでテスト 5.teardown メソッドを実行 6. 1に戻る 7. 全てのテストメソッドを実行すると終了 常にまっさらな状態からテスト可能 (テストの結果が他のテストに影響しない)

テスト2・ユニットテスト 1.create/read のテスト 2.update のテスト 3.delete のテスト 4.validation のテスト

テスト2・ユニットテスト 1.create/read のテスト 1.fixtures メソッドで、入力するテストデータ を選択 ⇒ fixtures :products 2.test_create メソッドをコーディング ⇒ assert_equal メソッドを使用する assert_equal メソッド – 第一引数に期待値、第二引数に実際値 – 一致しない場合、テスト失敗のメッセージ

テスト2・ユニットテスト 1.create/read のテスト 3.before_type_cast –date_made でエラーが発生 ⇒ Time 型に変換されているため –before_type_cast メソッドを使用する ⇒ 属性の最後に「 _before_type_cast 」を追加す る ⇒ 」 4.assert_kind_of –assert_kind_of でクラスをチェックすることが可 能

テスト2・ユニットテスト 1.create/read のテスト 5. テストデータの柔軟性 数字、文字を直入力 ⇒ テストデータが変化するとエラーになる フィクスチャのデータを取ってくるようにする –test / test_helper.rb の self.use_instantiated_fixtures を self.use_instantiated_fixtures = true に変更 に各データがハッシュで格納 データ名 ”] でデータが取れる – データ名 でも良い

テスト2・ユニットテスト 2. update のテスト 1.[ テスト ] 現在の値 2. 値を変更 3.[ テスト ]DB への格納 –assert メソッドを使う 4.DB からデータを再読み込み –reload メソッド 5.[ テスト ] 変更された値

テスト2・ユニットテスト 2. update @product.price = assert_equal

テスト2・ユニットテスト 3. delete のテスト DB のデータを消去 assert_raise メソッドで、 データを呼び出すとエラーが発生するかどうかをテ assert_raise(ActiveRecord::RecordNotFound){ }

テスト2・ユニットテスト 4. validation のテスト – 以下の 3 つをチェックする 1.DB にデータが格納できない assert メソッド 2. オブジェクトにエラーが格納された.errors のエラーの数を調べる 関係のないエラーが混じっていないかをチェック 3. エラーの内容.errors のエラーの内容を調べる

テスト2・ユニットテスト 4. validation @product.price = 0 assert assert_equal assert_equal ' は 0 より大きくなければなりません

テスト3・機能テスト 手順 1. アクションを呼び出す 2. 帰ってきた view などをテストする アクションがどうなったか – 成功、リダイレクト、エラーなど – リダイレクト、レンダーされた場所 帰ってきた HTML はどうか 変数に正しい値が帰ってきているか?

テスト3・機能テスト 使用するメソッド 1. アクションを呼び出す get post put delete head

テスト3・機能テスト 手順 2.帰ってきた view などをテストする アクションがどうなったか –assert_responce –assert_redirected_to 帰ってきた HTML はどうか –assert_tag –assert_template 変数に正しい値が帰ってきているか? –assigns –session –flash –cookies –redirect_to_url

終わり お疲れ様でした