Soumettre la recherche
Mettre en ligne
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
•
1 j'aime
•
1,729 vues
makopi 23
Suivre
『はじめてのClojure』勉強会#3 http://clj-first.connpass.com/event/8276/ 第7章:テスト、テスト、テスト の発表担当資料です。
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 17
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
テスト駆動開発へようこそ
テスト駆動開発へようこそ
Shuji Watanabe
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ー
Shuji Watanabe
Gcdについて?
Gcdについて?
Shun Nakahara
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
Takuto Wada
Gws in fukuoka
Gws in fukuoka
Takuma Watabiki
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Kenichi Kambara
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料
Hiroko Tamagawa
TDD のこころ
TDD のこころ
Takuto Wada
Recommandé
テスト駆動開発へようこそ
テスト駆動開発へようこそ
Shuji Watanabe
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ー
Shuji Watanabe
Gcdについて?
Gcdについて?
Shun Nakahara
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
Takuto Wada
Gws in fukuoka
Gws in fukuoka
Takuma Watabiki
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Kenichi Kambara
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料
Hiroko Tamagawa
TDD のこころ
TDD のこころ
Takuto Wada
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
aha_oretama
テスト駆動開発の進化
テスト駆動開発の進化
Yukei Wachi
JUnit入門/TDD入門[新人研修資料]
JUnit入門/TDD入門[新人研修資料]
Ryuhei Ishibashi
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
Hiroyuki Ohnaka
JUnit5とAndroidのテスト
JUnit5とAndroidのテスト
Hiroshi Kikuchi
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
SeasarCon 2009 White TDD
SeasarCon 2009 White TDD
Takuto Wada
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
Hiroko Tamagawa
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
kyon mm
Javaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTips
Masanori Satoh
Dependency injection
Dependency injection
Yuki Matsumura
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
Kenichi Kambara
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
Hiroyuki Ohnaka
Jenkins導入ライブ
Jenkins導入ライブ
Hiasyoshi Suehiro
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Atsuhiro Kubo
iOSアプリ開発でもTravis CI #eytokyo
iOSアプリ開発でもTravis CI #eytokyo
Koji Hasegawa
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行
Yu Nobuoka
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略
Naoki Umehara
Emergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summer
Takuto Wada
スクラムの知られざる勘所
スクラムの知られざる勘所
Yoshifumi Tsuda
【6章】アジャイルサムライ お題
【6章】アジャイルサムライ お題
Akio Terayama
Scalaでの例外処理
Scalaでの例外処理
Takashi Kawachi
Contenu connexe
Tendances
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
aha_oretama
テスト駆動開発の進化
テスト駆動開発の進化
Yukei Wachi
JUnit入門/TDD入門[新人研修資料]
JUnit入門/TDD入門[新人研修資料]
Ryuhei Ishibashi
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
Hiroyuki Ohnaka
JUnit5とAndroidのテスト
JUnit5とAndroidのテスト
Hiroshi Kikuchi
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
SeasarCon 2009 White TDD
SeasarCon 2009 White TDD
Takuto Wada
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
Hiroko Tamagawa
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
kyon mm
Javaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTips
Masanori Satoh
Dependency injection
Dependency injection
Yuki Matsumura
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
Kenichi Kambara
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
Hiroyuki Ohnaka
Jenkins導入ライブ
Jenkins導入ライブ
Hiasyoshi Suehiro
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Atsuhiro Kubo
iOSアプリ開発でもTravis CI #eytokyo
iOSアプリ開発でもTravis CI #eytokyo
Koji Hasegawa
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行
Yu Nobuoka
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略
Naoki Umehara
Emergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summer
Takuto Wada
Tendances
(19)
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
テスト駆動開発の進化
テスト駆動開発の進化
JUnit入門/TDD入門[新人研修資料]
JUnit入門/TDD入門[新人研修資料]
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
JUnit5とAndroidのテスト
JUnit5とAndroidのテスト
java-ja TDD 2nd
java-ja TDD 2nd
SeasarCon 2009 White TDD
SeasarCon 2009 White TDD
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
Javaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTips
Dependency injection
Dependency injection
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
Jenkins導入ライブ
Jenkins導入ライブ
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
iOSアプリ開発でもTravis CI #eytokyo
iOSアプリ開発でもTravis CI #eytokyo
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略
Emergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summer
En vedette
スクラムの知られざる勘所
スクラムの知られざる勘所
Yoshifumi Tsuda
【6章】アジャイルサムライ お題
【6章】アジャイルサムライ お題
Akio Terayama
Scalaでの例外処理
Scalaでの例外処理
Takashi Kawachi
Clojure + MongoDB on Heroku
Clojure + MongoDB on Heroku
Naoyuki Kakuda
【アジャイルサムライ】6章_ユーザストーリーを集める
【アジャイルサムライ】6章_ユーザストーリーを集める
Akio Terayama
Clojure入門
Clojure入門
Naoyuki Kakuda
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
Kazuhiro Hara
Clojure Language Update (2015)
Clojure Language Update (2015)
sohta
なぜアジャイル開発はうまくいかないのか #xpjug
なぜアジャイル開発はうまくいかないのか #xpjug
Yoshihito Kuranuki
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
例外設計における大罪
例外設計における大罪
Takuto Wada
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
sohta
入門Transducers
入門Transducers
sohta
From Java To Clojure
From Java To Clojure
Kent Ohashi
XP祭り2014「アジャイルを手放して得られたこと」
XP祭り2014「アジャイルを手放して得られたこと」
Yusuke Suzuki
キメるClojure
キメるClojure
Yoshitaka Kawashima
会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと
Recruit Technologies
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門
Kazuki Tsutsumi
En vedette
(18)
スクラムの知られざる勘所
スクラムの知られざる勘所
【6章】アジャイルサムライ お題
【6章】アジャイルサムライ お題
Scalaでの例外処理
Scalaでの例外処理
Clojure + MongoDB on Heroku
Clojure + MongoDB on Heroku
【アジャイルサムライ】6章_ユーザストーリーを集める
【アジャイルサムライ】6章_ユーザストーリーを集める
Clojure入門
Clojure入門
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
Clojure Language Update (2015)
Clojure Language Update (2015)
なぜアジャイル開発はうまくいかないのか #xpjug
なぜアジャイル開発はうまくいかないのか #xpjug
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
例外設計における大罪
例外設計における大罪
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
入門Transducers
入門Transducers
From Java To Clojure
From Java To Clojure
XP祭り2014「アジャイルを手放して得られたこと」
XP祭り2014「アジャイルを手放して得られたこと」
キメるClojure
キメるClojure
会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門
Similaire à 『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料
Yasui Tsutomu
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
kyon mm
Hey It's Not My TDD!
Hey It's Not My TDD!
Yasui Tsutomu
5minQues - SWET近況報告
5minQues - SWET近況報告
Masaki Nakagawa
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
UnityTechnologiesJapan002
Coderetreat in Japan #01 Presented by MTI Ltd
Coderetreat in Japan #01 Presented by MTI Ltd
Takashi Takebayashi
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
陽一 滝川
Tdd is really dead ?
Tdd is really dead ?
Akira Suenami
TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)
seichi23
TDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
テストコードの定型化
テストコードの定型化
Shinichi Hirauchi
Test automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transition
Tatsuya Ishikawa
TFS超入門。いつやるの。今でしょ
TFS超入門。いつやるの。今でしょ
Takuya Kawabe
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000dai
kyon mm
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
Tomomi Kajita
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
慎一 古賀
研究を基にしたオープンソース開発チェックポイント
研究を基にしたオープンソース開発チェックポイント
Recruit Technologies
Caketest
Caketest
ryota ichie
アジャイル開発&TFS導入
アジャイル開発&TFS導入
You&I
少し分かった気になるテスト駆動開発
少し分かった気になるテスト駆動開発
lnial
Similaire à 『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
(20)
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
Hey It's Not My TDD!
Hey It's Not My TDD!
5minQues - SWET近況報告
5minQues - SWET近況報告
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
Coderetreat in Japan #01 Presented by MTI Ltd
Coderetreat in Japan #01 Presented by MTI Ltd
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
Tdd is really dead ?
Tdd is really dead ?
TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)
TDDはじめる前に
TDDはじめる前に
テストコードの定型化
テストコードの定型化
Test automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transition
TFS超入門。いつやるの。今でしょ
TFS超入門。いつやるの。今でしょ
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000dai
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
研究を基にしたオープンソース開発チェックポイント
研究を基にしたオープンソース開発チェックポイント
Caketest
Caketest
アジャイル開発&TFS導入
アジャイル開発&TFS導入
少し分かった気になるテスト駆動開発
少し分かった気になるテスト駆動開発
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
1.
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト 2014/9/7(日)
@makopi23
2.
2 7.1 テスト駆動開発 (1/2)
テスト駆動開発とは 実装の前に「テスト・コード」を書き、その「テスト・コード」 が正しく動作するように実装を書く、という開発手法。 TDD (Test Driven Development)と呼ばれる。 【ご参考】 7章を写経したコードをGitHubにアップしました。 https://github.com/makopi23/BeginningClojure
3.
3 出典: Test Yourself
- テストを書くと何がどう変わるか by 和田卓人 http://www.slideshare.net/t_wada/jasst-2014-hokkaidotwadatdd
4.
4 出典: Test Yourself
- テストを書くと何がどう変わるか by 和田卓人 http://www.slideshare.net/t_wada/jasst-2014-hokkaidotwadatdd
5.
5 7.1 テスト駆動開発 (2/2)
テスト駆動開発の利点 想定外の理由でプログラムが動かなくなった、などの検 知が容易になり、コードの品質を保ってくれる。 要件に変更があっても、一度書いたテスト・コードがあれ ば、安心してコードを弄ることができる。 Clojureにおけるテスト 「clojure.test」ネーム・スペースに、標準でテストのための 関数が用意されている。
6.
6 7.2 「clojure.test」を使ったテスト (1/8)
「テスト・コード」を配置する位置 「Leiningen」で作成したプロジェクトであれば、あらかじめ 「test」ディレクトリが作成済みなので、そこに配置する。 テスト用の「ネーム・スペース」 ・テスト対象のネーム・スペース (テスト対象ファイル) hoge.fuga (src/hoge/fuga.clj) ・テスト・コードを置くネーム・スペース (テストコード) hoge.test.fuga (test/hoge/test/fuga.clj)
7.
7 7.2 「clojure.test」を使ったテスト (2/8)
「郵便番号だと真を返す関数」のテスト駆動開発 Leiningenで「postcode2」というプロジェクトを作成する と、testディレクトリにテストのひな形が用意される。
8.
8 7.2 「clojure.test」を使ったテスト (3/8)
「Leiningen」経由でのテスト 「lein test」コマンドでテストを実行すると、正しく失敗する
9.
9 7.2 「clojure.test」を使ったテスト (4/8)
valid-postcode?-test関数の作成
10.
10 7.2 「clojure.test」を使ったテスト (5/8)
valid-postcode?-test関数の実行 「valid-postcode?」関数が無いためエラー発生。
11.
11 7.2 「clojure.test」を使ったテスト (6/8)
valid-postcode?関数の定義 src/postcode2/core.cljにvalid-postcode?関数を定義 #"^d{3}-d{4}$" は正規表現 - 文字列の最初は3桁の数字。 - その後「ハイフン」がある。 - さらにその後4桁の「数字」。
12.
12 7.2 「clojure.test」を使ったテスト (7/8)
再テスト 「lein test」コマンドで再度テストを走らせてみる。 すると、一箇所だけテストに失敗する。 引数にnilが渡されNullPointerExceptionが発生している。
13.
13 7.2 「clojure.test」を使ったテスト (8/8)
nilをre-findの前で弾くようにvalid-postcode?関数を修正 再度テストを試すと、テストが成功する。
14.
14 7.3 Ringアプリケーションのテスト (1/3)
handlerに対して疑似的なリクエストを投げて、その応答 が正しいかをチェックする。 そのため、疑似的なリクエストを投げるRing-Mockライブ ラリを使用する。 project.cljの「:profile」シンボルのマップに追加 「ring.mock.request」ネーム・スペースが利用できるよう になり、その中の「request」関数でテストできる。 (handler (reuest :get “/”))
15.
15 7.3 Ringアプリケーションのテスト (2/3)
「Compojure」テンプレートを使ってLeigingenプロジェクト を作成すると、自動で作成されるテストファイル
16.
16 7.3 Ringアプリケーションのテスト (3/3)
「lein test」コマンドでテスト実行 「lein ring server」コマンドでWebアプリを起動
17.
17 まとめ
テスト駆動開発とは 実装の前に「テスト・コード」を書き、その「テスト・コード」が 正しく動作するように実装を書く、という開発手法。 TDD (Test Driven Development)と呼ばれる。 Clojureにおけるテスト 「clojure.test」ネーム・スペースに標準で用意されている、テ ストのための関数を使用する。 Ringerアプリケーションのテスト 疑似的なリクエストを投げるRing-Mockライブラリを使用で きる。
Télécharger maintenant