Enviar pesquisa
Carregar
Java scriptによるテスト駆動開発
•
4 gostaram
•
1,541 visualizações
Hidekazu Nakamura
Seguir
Educação
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 43
Baixar agora
Baixar para ler offline
Recomendados
Java SE 7 InvokeDynamic in JRuby
Java SE 7 InvokeDynamic in JRuby
Hiroshi Nakamura
関西Php勉強会のlimeの話
関西Php勉強会のlimeの話
Hisateru Tanaka
Inside Frontend 2 #insideFE
Inside Frontend 2 #insideFE
Hiroyuki Anai
Unit test in android
Unit test in android
Tatsuya Maki
Java7再入門講座
Java7再入門講座
Takafumi Yoshida
8時間耐久PHPUnitの教室
8時間耐久PHPUnitの教室
Yusuke Ando
Local php-100828 2
Local php-100828 2
Akio Ishida
JMeter によるパフォーマンステスト指南
JMeter によるパフォーマンステスト指南
じゅん なかざ
Recomendados
Java SE 7 InvokeDynamic in JRuby
Java SE 7 InvokeDynamic in JRuby
Hiroshi Nakamura
関西Php勉強会のlimeの話
関西Php勉強会のlimeの話
Hisateru Tanaka
Inside Frontend 2 #insideFE
Inside Frontend 2 #insideFE
Hiroyuki Anai
Unit test in android
Unit test in android
Tatsuya Maki
Java7再入門講座
Java7再入門講座
Takafumi Yoshida
8時間耐久PHPUnitの教室
8時間耐久PHPUnitの教室
Yusuke Ando
Local php-100828 2
Local php-100828 2
Akio Ishida
JMeter によるパフォーマンステスト指南
JMeter によるパフォーマンステスト指南
じゅん なかざ
Javaセキュアコーディングセミナー東京第3回演習の解説
Javaセキュアコーディングセミナー東京第3回演習の解説
JPCERT Coordination Center
from old Java to modern Java
from old Java to modern Java
心 谷本
Laravel勉強会(データベーステスト編)
Laravel勉強会(データベーステスト編)
AyakaNishiyama
Clojrue 13 testing
Clojrue 13 testing
Kiyotaka Kunihira
ゆるふわJava8入門
ゆるふわJava8入門
dcubeio
運用構築技術者の為のPSプログラミング第2回
運用構築技術者の為のPSプログラミング第2回
Shigeharu Yamaoka
Javaセキュアコーディングセミナー東京第3回演習
Javaセキュアコーディングセミナー東京第3回演習
JPCERT Coordination Center
Javaセキュアコーディングセミナー東京第4回演習の解説
Javaセキュアコーディングセミナー東京第4回演習の解説
JPCERT Coordination Center
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustSystems Corporation
構築手順 Ssis イベントログ取込み 第2版
構築手順 Ssis イベントログ取込み 第2版
junichi anno
from old java to java8 - KanJava Edition
from old java to java8 - KanJava Edition
心 谷本
FELDMAN FELDMAN & ASSOCIATES, PC
FELDMAN FELDMAN & ASSOCIATES, PC
Freddie_Harrison8439
Lab section 2
Lab section 2
Priñcess Ŝara
Provision of non audit services in sudan. (asbbs 14th conference in paris)
Provision of non audit services in sudan. (asbbs 14th conference in paris)
Amna Obeid
Do I Really Need To Hire a Lawyer for My Auto Accident Case?
Do I Really Need To Hire a Lawyer for My Auto Accident Case?
Freddie_Harrison8439
PERORES FICHAJES DE LA HISTORIA DEL MADRID Y DEL BARÇA
PERORES FICHAJES DE LA HISTORIA DEL MADRID Y DEL BARÇA
Lewis Messi
Bloom Legal
Bloom Legal
Freddie_Harrison8439
Www carinquotes com
Www carinquotes com
Freddie_Harrison8439
Lab. aids,hepatitis
Lab. aids,hepatitis
Priñcess Ŝara
PART TIME WORK FROM HOME FOR STUDENTS
PART TIME WORK FROM HOME FOR STUDENTS
Freddie_Harrison8439
Do I Really Need To Hire a Lawyer for My Auto Accident Case?
Do I Really Need To Hire a Lawyer for My Auto Accident Case?
Freddie_Harrison8439
GALE & LAUGHLIN
GALE & LAUGHLIN
Freddie_Harrison8439
Mais conteúdo relacionado
Mais procurados
Javaセキュアコーディングセミナー東京第3回演習の解説
Javaセキュアコーディングセミナー東京第3回演習の解説
JPCERT Coordination Center
from old Java to modern Java
from old Java to modern Java
心 谷本
Laravel勉強会(データベーステスト編)
Laravel勉強会(データベーステスト編)
AyakaNishiyama
Clojrue 13 testing
Clojrue 13 testing
Kiyotaka Kunihira
ゆるふわJava8入門
ゆるふわJava8入門
dcubeio
運用構築技術者の為のPSプログラミング第2回
運用構築技術者の為のPSプログラミング第2回
Shigeharu Yamaoka
Javaセキュアコーディングセミナー東京第3回演習
Javaセキュアコーディングセミナー東京第3回演習
JPCERT Coordination Center
Javaセキュアコーディングセミナー東京第4回演習の解説
Javaセキュアコーディングセミナー東京第4回演習の解説
JPCERT Coordination Center
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustSystems Corporation
構築手順 Ssis イベントログ取込み 第2版
構築手順 Ssis イベントログ取込み 第2版
junichi anno
from old java to java8 - KanJava Edition
from old java to java8 - KanJava Edition
心 谷本
Mais procurados
(11)
Javaセキュアコーディングセミナー東京第3回演習の解説
Javaセキュアコーディングセミナー東京第3回演習の解説
from old Java to modern Java
from old Java to modern Java
Laravel勉強会(データベーステスト編)
Laravel勉強会(データベーステスト編)
Clojrue 13 testing
Clojrue 13 testing
ゆるふわJava8入門
ゆるふわJava8入門
運用構築技術者の為のPSプログラミング第2回
運用構築技術者の為のPSプログラミング第2回
Javaセキュアコーディングセミナー東京第3回演習
Javaセキュアコーディングセミナー東京第3回演習
Javaセキュアコーディングセミナー東京第4回演習の解説
Javaセキュアコーディングセミナー東京第4回演習の解説
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
構築手順 Ssis イベントログ取込み 第2版
構築手順 Ssis イベントログ取込み 第2版
from old java to java8 - KanJava Edition
from old java to java8 - KanJava Edition
Destaque
FELDMAN FELDMAN & ASSOCIATES, PC
FELDMAN FELDMAN & ASSOCIATES, PC
Freddie_Harrison8439
Lab section 2
Lab section 2
Priñcess Ŝara
Provision of non audit services in sudan. (asbbs 14th conference in paris)
Provision of non audit services in sudan. (asbbs 14th conference in paris)
Amna Obeid
Do I Really Need To Hire a Lawyer for My Auto Accident Case?
Do I Really Need To Hire a Lawyer for My Auto Accident Case?
Freddie_Harrison8439
PERORES FICHAJES DE LA HISTORIA DEL MADRID Y DEL BARÇA
PERORES FICHAJES DE LA HISTORIA DEL MADRID Y DEL BARÇA
Lewis Messi
Bloom Legal
Bloom Legal
Freddie_Harrison8439
Www carinquotes com
Www carinquotes com
Freddie_Harrison8439
Lab. aids,hepatitis
Lab. aids,hepatitis
Priñcess Ŝara
PART TIME WORK FROM HOME FOR STUDENTS
PART TIME WORK FROM HOME FOR STUDENTS
Freddie_Harrison8439
Do I Really Need To Hire a Lawyer for My Auto Accident Case?
Do I Really Need To Hire a Lawyer for My Auto Accident Case?
Freddie_Harrison8439
GALE & LAUGHLIN
GALE & LAUGHLIN
Freddie_Harrison8439
Derecho Penal Especial
Derecho Penal Especial
Oxálida Alejos
Negmusic
Negmusic
Paúl Hualpa
Σαρακοστή
Σαρακοστή
MIHALINIO
SAP BI Training in Chennai
SAP BI Training in Chennai
Raja AMEKS Infotech
UPDATED_Shameer Ahmar Resume PPT
UPDATED_Shameer Ahmar Resume PPT
Shameer Ahmar
πολυτεχνείο
πολυτεχνείο
MIHALINIO
PROYECTO EDUCATIVO CIEN AULAS EN LA NUBE
PROYECTO EDUCATIVO CIEN AULAS EN LA NUBE
AULA PERÚ
Destaque
(18)
FELDMAN FELDMAN & ASSOCIATES, PC
FELDMAN FELDMAN & ASSOCIATES, PC
Lab section 2
Lab section 2
Provision of non audit services in sudan. (asbbs 14th conference in paris)
Provision of non audit services in sudan. (asbbs 14th conference in paris)
Do I Really Need To Hire a Lawyer for My Auto Accident Case?
Do I Really Need To Hire a Lawyer for My Auto Accident Case?
PERORES FICHAJES DE LA HISTORIA DEL MADRID Y DEL BARÇA
PERORES FICHAJES DE LA HISTORIA DEL MADRID Y DEL BARÇA
Bloom Legal
Bloom Legal
Www carinquotes com
Www carinquotes com
Lab. aids,hepatitis
Lab. aids,hepatitis
PART TIME WORK FROM HOME FOR STUDENTS
PART TIME WORK FROM HOME FOR STUDENTS
Do I Really Need To Hire a Lawyer for My Auto Accident Case?
Do I Really Need To Hire a Lawyer for My Auto Accident Case?
GALE & LAUGHLIN
GALE & LAUGHLIN
Derecho Penal Especial
Derecho Penal Especial
Negmusic
Negmusic
Σαρακοστή
Σαρακοστή
SAP BI Training in Chennai
SAP BI Training in Chennai
UPDATED_Shameer Ahmar Resume PPT
UPDATED_Shameer Ahmar Resume PPT
πολυτεχνείο
πολυτεχνείο
PROYECTO EDUCATIVO CIEN AULAS EN LA NUBE
PROYECTO EDUCATIVO CIEN AULAS EN LA NUBE
Semelhante a Java scriptによるテスト駆動開発
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
hakoika-itwg
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
Seiji KOMATSU
リファクタリング読書会20120220
リファクタリング読書会20120220
Suguru Shirai
Tokyor14 - R言語でユニットテスト
Tokyor14 - R言語でユニットテスト
Yohei Sato
究極のバッチフレームワーク(予定)
究極のバッチフレームワーク(予定)
fumoto kazuhiro
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
Shinichi Hirauchi
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
Spring と TDD
Spring と TDD
Takeshi Ogawa
Web技術勉強会 20111112
Web技術勉強会 20111112
龍一 田中
PHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めよう
Yuya Takeyama
Code complete ch22_developper_test
Code complete ch22_developper_test
Sho Shimauchi
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
JustSystems Corporation
Unit testで定時帰宅!
Unit testで定時帰宅!
Funato Takashi
ソフトウェア工学2023 11 テスト
ソフトウェア工学2023 11 テスト
Toru Tamaki
xUnit Test Patterns - Chapter19
xUnit Test Patterns - Chapter19
Takuto Wada
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
urasandesu
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話
Kentarou Takeda
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
Toshiyuki Hirata
CLRH_120414_WFTDD
CLRH_120414_WFTDD
Tomoyuki Obi
EC-CUBE + PHPUnit で 実践テスト駆動開発
EC-CUBE + PHPUnit で 実践テスト駆動開発
Kentaro Ohkouchi
Semelhante a Java scriptによるテスト駆動開発
(20)
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
リファクタリング読書会20120220
リファクタリング読書会20120220
Tokyor14 - R言語でユニットテスト
Tokyor14 - R言語でユニットテスト
究極のバッチフレームワーク(予定)
究極のバッチフレームワーク(予定)
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Spring と TDD
Spring と TDD
Web技術勉強会 20111112
Web技術勉強会 20111112
PHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めよう
Code complete ch22_developper_test
Code complete ch22_developper_test
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Unit testで定時帰宅!
Unit testで定時帰宅!
ソフトウェア工学2023 11 テスト
ソフトウェア工学2023 11 テスト
xUnit Test Patterns - Chapter19
xUnit Test Patterns - Chapter19
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
CLRH_120414_WFTDD
CLRH_120414_WFTDD
EC-CUBE + PHPUnit で 実践テスト駆動開発
EC-CUBE + PHPUnit で 実践テスト駆動開発
Último
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
inspirehighstaff03
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
ssusere0a682
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
Ken Fukui
My Inspire High Award 2024 「正義って存在するの?」
My Inspire High Award 2024 「正義って存在するの?」
inspirehighstaff03
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
Ken Fukui
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
inspirehighstaff03
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
inspirehighstaff03
International Politics I - Lecture 1
International Politics I - Lecture 1
Toru Oga
My Inspire High Award 2024 「孤独は敵なのか?」
My Inspire High Award 2024 「孤独は敵なのか?」
inspirehighstaff03
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
Ken Fukui
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
inspirehighstaff03
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
oganekyokoi
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
inspirehighstaff03
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
inspirehighstaff03
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdf
yukisuga3
My Inspire High Award 2024 「家族とは何か」
My Inspire High Award 2024 「家族とは何か」
inspirehighstaff03
What I did before opening my business..pdf
What I did before opening my business..pdf
oganekyokoi
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
Ken Fukui
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」
inspirehighstaff03
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
inspirehighstaff03
Último
(20)
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
My Inspire High Award 2024 「正義って存在するの?」
My Inspire High Award 2024 「正義って存在するの?」
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
International Politics I - Lecture 1
International Politics I - Lecture 1
My Inspire High Award 2024 「孤独は敵なのか?」
My Inspire High Award 2024 「孤独は敵なのか?」
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdf
My Inspire High Award 2024 「家族とは何か」
My Inspire High Award 2024 「家族とは何か」
What I did before opening my business..pdf
What I did before opening my business..pdf
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
Java scriptによるテスト駆動開発
1.
2013/10/23 中村
2.
1.テスト駆動開発とは 2. テスト駆動開発の目的 3. テスト駆動開発の流れ 4.テストフレームワークによ るテスト
3.
テスト駆動開発(TDD)とは テスト用プログラムを書く
テストを行う リファクタリングによるコードの改善 これを繰り返して開発を進める開発手法
4.
プログラムを外部から見た動作を変えずに ソースコードの内部構造を整理すること コードを追加・変更を繰り返していくうちに 重複箇所や煩雑になった場合などの対応する こと
5.
他の言語と比べてデバッグしにくい事が挙げ られる エラーが発生しても画面から得られる情報が 少ない
テストコードを書き、少しづつ開発を進めて いくこの手法が向いていると思われる
6.
1.開発が早くなる 2.クロスブラウザテストが簡単に行える
7.
繰り返し自動でテストが行われることで、正 常だったプログラムを修正してバグが発生し てしまった場合にもすぐに検知できる。 難易度が高い開発の場合、テストコードを短 い間隔で記述して実行していくことにより、 整理されていく。その結果、早い開発が可能 となる。
8.
テスト駆動開発では常にテストが付きまとう。 そのテストが思った通りに動作することに気 を付けながら開発を進めていく その結果・・・
着実に進められるため、結果的にバグによる 戻り作業の少ない開発が行える
9.
ツールによって引数にブラウザを設 定し、そのブラウザを起動してテス トを行える
10.
テストコードを書く、というこ とは初期投資が必要となる。初 期投資が回収出来ないような開 発では適用すべきではない
11.
テスト駆動開発は以下の作業サイクルを細か く繰り返してプログラミングを進めていく テストを書く 不合格確認 合格確認 重複削除のためのリファクタリング
12.
実装する機能を選び、そのため の単体テストを書く。短く、単 一の振る舞いを対象にするべき
13.
テストコードがバグを含んでい る可能性もある そういった可能性も考慮して、 敢えて不合格テストを実施する。 不合格テストを実施することで コードの現在の状態を把握する。
14.
テストを成功させる
15.
重複削除などコードをリファク タリングしてきれいにする。
16.
JavaScriptのテストフレームワー クはたくさん存在する 参考として以下に例を紹介する
17.
テストを絶えず実行し作業フローにテストを 組み込むことが煩わしい JsUnit 更新が遅く、新しいプロジェクトに適用 するには不向き。Prototype.jsライブラリ のために作られていたこともあり、依存 しがち。 YUI Yahooが作成したブラウザ内テストフレー ムワーク QUnit jQueryチームが開発。伝統的なxUnitの設 計に厳格に従っていない。
18.
コマンドライン上でテストを実行できるが、 本番コードが実行されない環境でのテストと なる Crosscheck 更新されておらず、現在の ブラウザでは対応できない Rhinoとenv.js JQueryを作った方が開発し たライブラリ
19.
以下のツールによる開発を紹介する JsTestDriver 実際のブラウザ、モバイルでもテスト可能 EclipseやIntelliJ IDEAへのプラグインもある Junitと互換性のあるXMLレポートの出力も可能。 Jenkinsとの連携も簡単に対応できる しかし古いブラウザに対応していない部分もある。 (XMLHttpRequestオブジェクトを必要とするVar.7 以前のIEには対応できない)
20.
4.1サーバーの起動 4.2ブラウザにアクセス 4.3テスト実行
21.
sudo java -jar $JSTESTDRIVER_HOME/JsTestDri ver-1.3.5.jar --port
4224
22.
ブラウザで以下のアドレスにア クセス http://localhost:4224
23.
cd $JSTESTDRIVER_HOME/files/testdriven-javascript-developmentcode/00-main/case01/ sudo java
-jar $JSTESTDRIVER_HOME/JsTestDriver1.3.5.jar --tests all
24.
テストリスト: ①4で割り切れる年はうるう年と判定する
②ただし、100で割り切れる年はうるう年で ないと判定する ③ただし、400で割り切れる年はうるう年と 判定する
25.
①2004年は4で割り切れるため閏年 ②2100年は100で割り切れるため閏年でない
③2000年は100で割り切れるが400で割り切れ るため閏年
26.
まずは失敗するパターンで実行する 入力データ:7 //
main.js function isLeapYear(year){ jstestdriver.console.log(year ); if ((year % 4) == 0) { return true; } return false; } // isLeapYear.js TestCase("isLeapYearTest", { 'test isLeapYear': function(){ var setYears = 7; assertEquals(true,isLeapYear (setYears)); } } ) 入力データ7のケースを追加
27.
Total 1 tests
(Passed: 0; Fails: 1; Errors: 0) (1.00 ms) Firefox 17.0 Linux: Run 1 tests (Passed: 1; Fails: 0; Errors 0) (1.00 ms) isLeapYearTest.test isLeapYear passed (1.00 ms) [LOG] 7
28.
次に成功パターンで実行する 入力データ:8 //
main.js function isLeapYear(year){ jstestdriver.console.log(year ); if ((year % 4) == 0) { return true; } return false; } // isLeapYear.js TestCase("isLeapYearTest", { 'test isLeapYear': function(){ var setYears = 8; assertEquals(true,isLeapYear (setYears)); } } ) 入力データ8のケースを追加
29.
Total 1 tests
(Passed: 1; Fails: 0; Errors: 0) (1.00 ms) Firefox 17.0 Linux: Run 1 tests (Passed: 1; Fails: 0; Errors 0) (1.00 ms) isLeapYearTest.test isLeapYear passed (1.00 ms) [LOG] 8
30.
まずは失敗するパターンで実行する // main.js function isLeapYear(year){ jstestdriver.console.log(ye ar); if
((year % 4) == 0) { if (year % 100 == 0) { return false; } return true; } return false; } // isLeapYear.js TestCase("isLeapYearTest", { 'test isLeapYear4': function(){ var setYears = 4; assertEquals(true,isLeapYear(setYears)); }, 'test isLeapYear100': function(){ var setYears = 40; assertEquals(true,isLeapYear(setYears)); }, } ) 入力データ40のケースを追加 両方成功してしまうケース
31.
Total 2 tests
(Passed: 2; Fails: 0; Errors: 0) (0.00 ms) Firefox 17.0 Linux: Run 2 tests (Passed: 2; Fails: 0; Errors 0) (0.00 ms) isLeapYearTest.test isLeapYear4 passed (0.00 ms) [LOG] 4 isLeapYearTest.test isLeapYear100 passed (0.00 ms) [LOG] 40
32.
// main.js あ function isLeapYear(year){ jstestdriver.console.log(ye ar); if
((year % 4) == 0) { if (year % 100 == 0) { return false; } return true; } return false; } // isLeapYear.js TestCase("isLeapYearTest", { 'test isLeapYear4': function(){ var setYears = 4; assertEquals(true,isLeapYear(setYears)); }, 'test isLeapYear100': function(){ var setYears = 100; assertEquals(true,isLeapYear(setYears)); }, } ) 入力データ100のケースを追加 こちらは閏年ではないので Failsで返ってくるはず
33.
Total 2 tests
(Passed: 1; Fails: 1; Errors: 0) (1.00 ms) Firefox 17.0 Linux: Run 2 tests (Passed: 1; Fails: 1; Errors 0) (1.00 ms) isLeapYearTest.test isLeapYear4 passed (0.00 ms) [LOG] 4 isLeapYearTest.test isLeapYear100 failed (1.00 ms): AssertError: expected true but was false .test isLeapYear100@http://localhost:4224/test/test/isLeapYear.js:9 [LOG] 100 Firefox 17.0 Linux: Run 2 tests (Passed: 2; Fails: 0; Errors 0) (0.00 ms) isLeapYearTest.test isLeapYear4 passed (0.00 ms) [LOG] 4 isLeapYearTest.test isLeapYear100 passed (0.00 ms) [LOG] 40
34.
// main.js function isLeapYear(year){ jstestdriver.console.log(year);
if ((year % 4 == 0) || (year % 100 != 0)) { return true; } return false; }
35.
// main.js function isLeapYear(year){ jstestdriver.console.log(yea r); if
((year % 4 == 0) || (year % 100 != 0)) { return true; } return false; } // isLeapYear.js TestCase("isLeapYearTest", { 'test isLeapYear4': function(){ var setYears = 4; assertEquals(true,isLeapYear(setYea rs)); }, 'test isLeapYear100': function(){ var setYears = 100; assertEquals(true,isLeapYear(setYea rs)); }, } )
36.
Total 2 tests
(Passed: 2; Fails: 0; Errors: 0) (1.00 ms) Firefox 17.0 Linux: Run 2 tests (Passed: 2; Fails: 0; Errors 0) (1.00 ms) isLeapYearTest.test isLeapYear4 passed (0.00 ms) [LOG] 4 isLeapYearTest.test isLeapYear100 passed (1.00 ms) [LOG] 100 入力データ4は成功(閏年) 入力データ100は失敗(閏年ではない) となるはず・・・ おかしい
37.
// main.js function isLeapYear(year){ // isLeapYear.js TestCase("isLeapYearTest",
{ 'test isLeapYear4': function(){ var setYears = 4; jstestdriver.console.log (year); if ((year % 4 == 0) && (year % 100 != 0)) { return true; } return false; } assertEquals(true,isLeapYear(setYears) ); }, 'test isLeapYear100': function(){ var setYears = 100; assertEquals(true,isLeapYear(setYears) ); }, } )
38.
Total 2 tests
(Passed: 1; Fails: 1; Errors: 0) (0.00 ms) Firefox 17.0 Linux: Run 2 tests (Passed: 1; Fails: 1; Errors 0) (0.00 ms) isLeapYearTest.test isLeapYear4 passed (0.00 ms) [LOG] 4 isLeapYearTest.test isLeapYear100 failed (0.00 ms): AssertError: expected true but was false .test isLeapYear100@http://localhost:4224/test/test/isLea pYear.js:8 [LOG] 100 成功!
39.
// main.js function isLeapYear(year){ jstestdriver.console.log(ye ar); if(year
% 400){ return true; } else if ((year % 4 == 0) && (year % 100 != 0)) { return true; } return false; } // isLeapYear.js TestCase("isLeapYearTest", { 'test isLeapYear4': function(){ var setYears = 4; assertEquals(true,isLeapYear(setYears)); }, 'test isLeapYear100': function(){ var setYears = 100; assertEquals(true,isLeapYear(setYears)); }, 'test isLeapYear400': function(){ var setYears = 200; assertEquals(true,isLeapYear(setYears)); }, } ) 入力データ200のケースを追加 こちらは閏年
40.
Total 3 tests
(Passed: 1; Fails: 2; Errors: 0) (1.00 ms) Firefox 17.0 Linux: Run 3 tests (Passed: 3; Fails: 0; Errors 0) (1.00 ms) isLeapYearTest.test isLeapYear4 passed (0.00 ms) [LOG] 4 isLeapYearTest.test isLeapYear100 passed (1.00 ms) [LOG] 100 isLeapYearTest.test isLeapYear400 passed (0.00 ms) [LOG] 200
41.
再度テストを行い、成功を確認する // main.js function isLeapYear(year){ jstestdriver.console.log(ye ar); if
(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) { return true; } return false; } // isLeapYear.js TestCase("isLeapYearTest", { 'test isLeapYear4': function(){ var setYears = 4; assertEquals(true,isLeapYear(setYears)); }, 'test isLeapYear100': function(){ var setYears = 100; assertEquals(true,isLeapYear(setYears)); }, 'test isLeapYear400': function(){ var setYears = 400; assertEquals(true,isLeapYear(setYears)); }, } )
42.
Total 3 tests
(Passed: 2; Fails: 1; Errors: 0) (2.00 ms) Firefox 17.0 Linux: Run 3 tests (Passed: 2; Fails: 1; Errors 0) (2.00 ms) isLeapYearTest.test isLeapYear4 passed (1.00 ms) [LOG] 4 isLeapYearTest.test isLeapYear100 passed (1.00 ms) [LOG] 100 isLeapYearTest.test isLeapYear400 failed (0.00 ms): AssertError: expected true but was false .test isLeapYear400@http://localhost:4224/test/test/isLea pYear.js:13 [LOG] 400
43.
テストを書 く リファクタリン グ 不合格確認 合格確認
Baixar agora