Recommended
PDF
おまえらこのライブラリ使ってないの? m9 (2013-07)
PPTX
Pythonユーザのための構成管理入門 #pyconapac
ODP
PDF
PDF
Pycon2014 django performance
PDF
PDF
PDF
PPTX
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
PDF
PDF
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
PDF
PPTX
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
PDF
PDF
PDF
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
PPTX
PPTX
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
PDF
PPTX
PDF
PDF
PDF
PDF
Sqale の Puppet と Chef (と テスト)
PDF
consul & consul-alerts を使った監視システム (hbstyle-2015-01-08)
PDF
chat bot framework for Java8
PPTX
Open Source System Administration Framework - Func
PDF
PPTX
PDF
More Related Content
PDF
おまえらこのライブラリ使ってないの? m9 (2013-07)
PPTX
Pythonユーザのための構成管理入門 #pyconapac
ODP
PDF
PDF
Pycon2014 django performance
PDF
PDF
PDF
What's hot
PPTX
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
PDF
PDF
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
PDF
PPTX
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
PDF
PDF
PDF
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
PPTX
PPTX
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
PDF
PPTX
PDF
PDF
PDF
PDF
Sqale の Puppet と Chef (と テスト)
PDF
consul & consul-alerts を使った監視システム (hbstyle-2015-01-08)
PDF
chat bot framework for Java8
PPTX
Open Source System Administration Framework - Func
Viewers also liked
PDF
PPTX
PDF
PPTX
PDF
PDF
PPT
PDF
PDF
PPTX
PPTX
Ims2016 micro apps_robertbrennan_pll_frequencyplanning_v2
PPTX
PPT
PPT
PDF
Similar to Haikara
PDF
PDF
PDF
PDF
あなたの安心を高速に守る Container-based CI
PPTX
PDF
PDF
KEY
Behat+Symfony2ではじめるBDD超入門
KEY
PPTX
PPTX
PPT
Ruby on Rails3 Tutorial Chapter3
KEY
PPTX
PDF
RSpecによるRailsテスト入門 第六章 高度なコントローラスペック
PPT
PDF
PDF
PDF
PPTX
テストしなイカ? Seleniumで自動ブラウザテスト
Haikara 1. は
あ い
あ か
る ら
す
ぺ
つ
@jewel_x12
く
2. 3. 4. 6. 7. 8. 9. 10. 11. 12. Ψ Spork Ψ
テストの高速化
• Distributed Ruby(DRb)を利用したサーバにRailsア
プリを前もって読み込ませておく
• RSpecやCucumberに対応
• RSpec
•spork rspec --bootstrap してから spork で起動
• Cucumber
•spork cucumber --bootstrap したら spork cuc
で起動
13. 14. % Simplecov %
テストのカバレッジを見る
• RSpecやCucumberにも対応
• simplecov-rcovでRCov出力ができるの
で、Jenkinsと連携可能
• そのままSporkと使おうとすると動かない
https://github.com/colszowka/simplecov/issues/42#issuecomment-4440284
15. = Fuubar =
RSpecテストのプログレスバー
テストの進 状況を確認!
進まないプログレスバー!
16. ♥ FactoryGirl ♥
テスト用データを記述する
FactoryGirl.define do
factory :precure do
name "Misumi Nagisa"
cure_name "Cure Black"
end
factory :cure_dream, class: Precure do
name "Yumehara Nozomi"
cure_name "Cure Dream"
end
end
# データを作るだけ
cure_black = FactoryGirl.build :precure
# 保存まで行う
cure_dream = FactoryGirl.create :cure_dream
17. ♥ FactoryGirl ♥
テスト用データを記述する
FactoryGirl.define do
factory :precure do
base_name "Peach"
cure_name "Cure #{base_name}"
end
end
FactoryGirl.build(:precure, base_name:”Pine”).cure_name
#=> “Cure Pine”
他の属性に依存することもできる
18. ♥ FactoryGirl ♥
テスト用データを記述する
# Defines a new sequence
FactoryGirl.define do
sequence :email do |n|
"person#{n}@example.com"
end
end
FactoryGirl.generate :email
# => "person1@example.com"
FactoryGirl.generate :email
# => "person2@example.com"
連続的に生成できるデータ
https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md
19. ♥ FactoryGirl ♥
テスト用データを記述する
•has_manyな関係も記述できる
•Spork と使う時は、factory を書き換えても反
映されない
•Spork.each_run で FactoryGirl.reload
20. ☁ FFaker ☁
それっぽいデータを作る
require 'ffaker'
Faker::Name.name => "Christophe Bartell"
Faker::Internet.email =>
"kirsten.greenholt@corkeryfisher.info"
https://github.com/EmmanuelOga/ffaker
• FactoryGirl とかと組み合わせて使う
• 本家の Faker より20倍早いらしい
21. ω capybara ω
ブラウザをシミュレート
• Rackアプリの結合テストをサポート
• cucumberで使うと便利
describe "the signup process", :type => :request do
before :each do
User.make(:email => 'user@example.com', :password => 'caplin')
end
it "signs me in" do
within("#session") do
fill_in 'Login', :with => 'user@example.com'
fill_in 'Password', :with => 'password'
end
click_link 'Sign in'
end
end
https://github.com/jnicklas/capybara/
22. ω capybara ω
ブラウザをシミュレート
page.should have_selector('table tr')
page.should have_selector(:xpath, '//table/tr')
page.should have_no_selector(:content)
page.should have_xpath('//table/tr')
page.should have_css('table tr.foo')
page.should have_content('foo')
• page オブジェクトが生成される
• page.has_selector? を持っている
• current_path オブジェクトも生成され
る
• page.save_screenshot( yabai.png )
23. 24. 25. 26. 27. 胡 Cucumber 瓜
受け入れテスト
顧客-開発者間等と、お互いが理
解できる言葉で記述できる。
統合テストはCucumber
RSpecで単体テストという感じか
rails generate cucumber:install --spork --capybara --rspec
28. 胡 Cucumber 瓜
顧客受け入れテスト
フィーチャ、cucumberコマンド、ス
テップ定義の3つの部分で構成
シナリオをRubyで書かれたステップ定
義にマッピング
29. 胡 Cucumber 瓜
顧客受け入れテスト
フィーチャ
ユーザの視点似たっておおまかに表現された要件
誰に対するフィーチャなのか
--- 在庫管理者が在庫品目を追加する
--- 匿名の訪問者がブログコメントを追加する
30. 胡 Cucumber 瓜
顧客受け入れテスト
Gherkin
.feature ファイルを解釈するインタプリタ
文法(キーワード)は
Feature, Background, Scenario (Outline), Scenarios (Examples), Given, When,
Then, And, But
フィーチャ, 背景, シナリオ, シナリオアウトライン, サンプル (例), 前提, もし, ならば,
かつ, ただし
多くの言語に翻訳されている。
featureファイルの最初に # language: ja
31. 胡 Cucumber 瓜
顧客受け入れテスト
シナリオ
ソフトウェアがどのような振る舞いをすべきか
一般的なシナリオから始まり、特異なケースを説明
するシナリオを追加していく
32. 胡 Cucumber 瓜
顧客受け入れテスト
ステップ
Given, When, THen, And, But のステップ
キーワードで始まる行(前提, もし, ならば, か
つ, ただし)
これらのキーワードは振る舞いを表す
「当座預金口座の残高が100ドルであるとすれば
(Given)、もし70ドルを引き出せば(When)、残高は3
0ドルになるはずである(Then)。
33. 胡 Cucumber 瓜
顧客受け入れテスト
Given(前提)
シナリオにおいて事実として受け入れるもの
当座預金口座の残高が100ドルであるとすれば
僕が娘溺泉に落ちたとすれば
女の子は誰でもプリキュアになれるとすれば
34. 胡 Cucumber 瓜
顧客受け入れテスト
When(もし)
シナリオにおけるイベント
15ドル引き出した
水をかぶる
キュアドリームに変身する
35. 胡 Cucumber 瓜
顧客受け入れテスト
Then(ならば)
残高は85ドルである
女性になる
プリキュアシューティングスターが使える
36. 胡 Cucumber 瓜
顧客受け入れテスト
タグ
@
タグは関係者に開発途中のシナリオは見せない場合
やテーマを設定する場合に使う
Before等のフックもある
37. 胡 Cucumber 瓜
顧客受け入れテスト
World
各シナリオは World オブジェクトの文脈で実行さ
れる
/features/support/world.rb にヘルパーメソッド
を持つモジュール定義等を書いておき
World( Mod ) として World を拡張することができ
る
38.