際際滷

際際滷Share a Scribd company logo
Turnipによる
エンドツ`エンドテスト
ことはじめ
及10指 L鍋IT室g宀氏
2016/1/23(Sat) 箆弥丐侑
徭失B初
? 箆弥丐侑┐Δ犬燭燭ゆき
? ゛2015定8埖 蝶IT二Iで、プログラマとか芙坪SEとか
? BtoBのWebアプリの_kメイン
? 匯桑聞ってた冱ZはJava(すべて鏡徭FW)
? Ruby On RailsはUYゼロ
? 2015定9埖゛ 及眉宀編^氏芙でテストエンジニア
? Webサ`ビスのテストg廾、テストg佩
? 恷除の試?歌紗コミュニティ
? JSTQB AL Y貨茶氏麼岸
? L鍋IT室g宀氏スタッフ など
歌深Y創
? るびま仝エンドツ`エンドテストの徭啝は Cucumber から
Turnip へ々
http://magazine.rubyist.net/?0042-FromCucumberToTurnip
? スクラムの鞭け秘れ訳周と鬉気擦Turnipで徭咼謄好箸く
http://dev.classmethod.jp/server-side/turnip-acceptance-
testing-2/
? 鞭け秘れテストとは、人(ユ`ザ`朕)でのテストのこと。
http://morizyun.github.io/blog/the-rspec-book-review-rails/
このスライドは、麼にるびまの唹を鞭けて恬りました
書晩の朕議(ゴ`ル)
? UYゼロの徭蛍がTurnipを咾すところまで
をB初する
? Turnipをちょっとだけ尖盾してもらう
? 採かできそうな櫃砲覆辰討發蕕
Turnipのその念に´
? Ruby on Rails が咾h廠が駅勣です
? ホストOSWindows10
? ゲストOSCentOS6.7
? Ruby2.2.4
? Rails4.2.5
? MySQL5.6.28
? このxのはQiitaにまとめてます
Turnipとは
? Ruby on Railsの徭咼謄好肇挑`ル(RSpec)の
テストの返などを協xするためのDSLです。
? 蛍かりやすい晩云Zでテストの古勣をけます。
? そのため、プログラマでなくても徭咼謄好箸
採をしてるか尖盾しやすくなったりします
? でもgは、Turnipを聞わずRSpecだけでも
徭啝はgFできちゃいます。
RSpec
Steps
_k宀
ユ`ザ/
及眉宀
よっしゃ
販せろ
???
Turnipがなかったら???
RSpec
Steps
_k宀
ユ`ザ/
及眉宀
f薦
するお
匯wに
やるお
Turnipがあると
feature
徭強晒してみよう
徭啝の返
1. テストする坪否(シナリオ)をQめる
2. シナリオをもとにfeatureファイルを恬る
3. stepsファイルを恬る
4. テストをg佩する
徭啝の返
1. テストする坪否(シナリオ)をQめる
2. シナリオをもとにfeatureファイルを恬る
3. stepsファイルを恬る
4. テストをg佩する
テストする坪否(シナリオ)をQめる
? 戰肇奪彁中にw卞する
テストする坪否(シナリオ)をQめる
? New Blogリンクを兀して恬撹鮫中を_く
テストする坪否(シナリオ)をQめる
? 曠織ぅ肇襪髪称弔鯣訌Δ垢
テストする坪否(シナリオ)をQめる
? ∠Create Blogボタンを兀して誘後する
テストする坪否(シナリオ)をQめる
? ∠タイトルと云猟の坪否をチェック
徭啝の返
1. テストする坪否をQめる
2. featureファイルを恬る
3. stepsファイルを恬る
4. テストをg佩する
featureファイルを恬る
? テストする坪否を、
C嬬 / シナリオ / ステップ の撹でく
? そのr聞うのがGherkin隈
? ファイル兆はxx.featureとなります
featureファイルを恬る
#encoding: utf-8
#language: ja
C嬬: ユ`ザはブログ並を恬撹できる
ブログ誘後C嬬のテストを佩います
@blog
シナリオ: タイトルと云猟を秘薦して並を恬撹できること
もし トップをLする
かつ Newリンクをクリックする
かつ タイトルと云猟を秘薦して恬撹ボタンを兀す
ならば 恬撹したタイトルが燕幣されていること
かつ 恬撹した云猟が燕幣されていること
featureファイルを恬る
#encoding: utf-8
#language: ja
C嬬: ユ`ザはブログ並を恬撹できる
ブログ誘後C嬬のテストを佩います
@blog
シナリオ: タイトルと云猟を秘薦して並を恬撹できること
もし トップをLする
かつ Newリンクをクリックする
かつ タイトルと云猟を秘薦して恬撹ボタンを兀す
ならば 恬撹したタイトルが燕幣されていること
かつ 恬撹した云猟が燕幣されていること
Featureファイルを
晩云Zでくためのおまじない
stepsファイルとB亊する
ためにいておく
featureファイルを恬る
#encoding: utf-8
#language: ja
C嬬: ユ`ザはブログ並を恬撹できる
ブログ誘後C嬬のテストを佩います
@blog
シナリオ: タイトルと云猟を秘薦して並を恬撹できること
もし トップをLする
かつ Newリンクをクリックする
かつ タイトルと云猟を秘薦して恬撹ボタンを兀す
ならば 恬撹したタイトルが燕幣されていること
かつ 恬撹した云猟が燕幣されていること
テストしたいC嬬。
ユ`ザ`スト`リ`とか、
仝$$C嬬々とか。
featureファイルを恬る
#encoding: utf-8
#language: ja
C嬬: ユ`ザはブログ並を恬撹できる
ブログ誘後C嬬のテストを佩います
@blog
シナリオ: タイトルと云猟を秘薦して並を恬撹できること
もし トップをLする
かつ Newリンクをクリックする
かつ タイトルと云猟を秘薦して恬撹ボタンを兀す
ならば 恬撹したタイトルが燕幣されていること
かつ 恬撹した云猟が燕幣されていること
テストシナリオ
(テストしたいこと)の勣s。
featureファイルを恬る
#encoding: utf-8
#language: ja
C嬬: ユ`ザはブログ並を恬撹できる
ブログ誘後C嬬のテストを佩います
@blog
シナリオ: タイトルと云猟を秘薦して並を恬撹できること
もし トップをLする
かつ Newリンクをクリックする
かつ タイトルと云猟を秘薦して恬撹ボタンを兀す
ならば 恬撹したタイトルが燕幣されていること
かつ 恬撹した云猟が燕幣されていること
テストシナリオの
鮫中荷恬と栽鯉訳周。
徭啝の返
1. テストする坪否をQめる
2. featureファイルを恬る
3. stepsファイルを恬る
4. テストをg佩する
stepsファイルを恬る
1. featureファイルのステップ
に鬉垢訃潴綉弔I尖(スクリプト)をく
2. スクリプトはRSpecを聞っていていきます
3. ファイル兆は霞霞喝壊岳艶沿壊.姻恢となります
stepsファイルを恬る
steps_for :blog do
step 'トップをLする' do
visit 'blogs'
end
step 'Newリンクをクリックする' do
click_link 'New Blog'
end
災塹詑
stepsファイルを恬る
steps_for :blog do
step 'トップをLする' do
visit 'blogs'
end
step 'Newリンクをクリックする' do
click_link 'New Blog'
end
災塹詑
featureファイルの
@blog に鬉垢覯新
stepsファイルを恬る
steps_for :blog do
step 'トップをLする' do
visit 'blogs'
end
step 'Newリンクをクリックする' do
click_link 'New Blog'
end
災塹詑
もし トップをLする
かつ Newリンクをクリックする
かつ タイトルと云猟を秘薦して恬撹ボタンを兀す
ならば 恬撹したタイトルが燕幣されていること
かつ 恬撹した云猟が燕幣されていること
テスト徭啝の返
1. テストする坪否をQめる
2. featureファイルを恬る
3. featureを困燭stepsファイルを恬る
4. テストをg佩する
g佩する
$ bundle exec rspec -fd
☆パラメ`タについて´
-[f]ormat Choose a formatter.
[p]rogress (default - dots)
[d]ocumentation (group and example names)
[h]tml
[j]son
custom formatter class name
g佩する
$ bundle exec rspec -fd
g佩する
$ bundle exec rspec -fdC嬬とシナリオの坪否
g佩する
$ bundle exec rspec -fdステップの坪否
g佩する(おまけ)
$ bundle exec rspec -fh > result.html
恷瘁に
? Turnipを聞うことで、プログラマでない及眉
宀やユ`ザにとって徭咼謄好箸尖盾しや
すいものになります
? Railsで徭啝を容MしているFであれば、
曳^議秘しやすいかと房います。
? そうでない圭も、ぜひチャレンジしてみて
ください

More Related Content

意顎姻稼庄沿によるエンドツ`エンドテストことはじめ