Submit Search
Upload
Rspec、あなたならどう書く? 20190626
•
0 likes
•
338 views
K
Koske Kano
Follow
2019-06-26 gotanda.rbの発表資料です。
Read less
Read more
Software
Report
Share
Report
Share
1 of 38
Download now
Download to read offline
Recommended
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
toshihiro ichitani
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
脱RESTful API設計の提案
脱RESTful API設計の提案
樽八 仲川
LibreOffice API について
LibreOffice API について
健一 辰濱
テストコード入門
テストコード入門
小川 昌吾
正しいものを正しくつくるへ至る道
正しいものを正しくつくるへ至る道
toshihiro ichitani
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
Recommended
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
toshihiro ichitani
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
脱RESTful API設計の提案
脱RESTful API設計の提案
樽八 仲川
LibreOffice API について
LibreOffice API について
健一 辰濱
テストコード入門
テストコード入門
小川 昌吾
正しいものを正しくつくるへ至る道
正しいものを正しくつくるへ至る道
toshihiro ichitani
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
XMPPの紹介
XMPPの紹介
隆行 神戸
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼう
Toshiaki Sasaki
最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた
zaki4649
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Yahoo!デベロッパーネットワーク
WayOfNoTrouble.pptx
WayOfNoTrouble.pptx
Daisuke Yamazaki
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
「いい人がいない」のメカニズム
「いい人がいない」のメカニズム
林 要
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
Yoshitaka Kawashima
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
「PdMと考えるQAとプロダクトマネジメント」
「PdMと考えるQAとプロダクトマネジメント」
大貴 蜂須賀
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みる
Masatoshi Tada
Ruby StyleStatsの紹介
Ruby StyleStatsの紹介
Toshihiro Gotou
ENGINEER WORK!!
ENGINEER WORK!!
sinsoku listy
More Related Content
What's hot
XMPPの紹介
XMPPの紹介
隆行 神戸
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼう
Toshiaki Sasaki
最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた
zaki4649
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Yahoo!デベロッパーネットワーク
WayOfNoTrouble.pptx
WayOfNoTrouble.pptx
Daisuke Yamazaki
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
「いい人がいない」のメカニズム
「いい人がいない」のメカニズム
林 要
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
Yoshitaka Kawashima
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
「PdMと考えるQAとプロダクトマネジメント」
「PdMと考えるQAとプロダクトマネジメント」
大貴 蜂須賀
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みる
Masatoshi Tada
What's hot
(20)
XMPPの紹介
XMPPの紹介
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼう
最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
WayOfNoTrouble.pptx
WayOfNoTrouble.pptx
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
「いい人がいない」のメカニズム
「いい人がいない」のメカニズム
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
「PdMと考えるQAとプロダクトマネジメント」
「PdMと考えるQAとプロダクトマネジメント」
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みる
Similar to Rspec、あなたならどう書く? 20190626
Ruby StyleStatsの紹介
Ruby StyleStatsの紹介
Toshihiro Gotou
ENGINEER WORK!!
ENGINEER WORK!!
sinsoku listy
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュ
Kenji Mori
20100619 wakhok important_of_io_with_jror
20100619 wakhok important_of_io_with_jror
Yoshiharu Hashimoto
Agile japan2012 agilesamurai_shinjuku
Agile japan2012 agilesamurai_shinjuku
TomomiK
WACATE2018Summer BPP yoshitake
WACATE2018Summer BPP yoshitake
Nobuhiro Yoshitake
プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話
Cake YOSHIDA
LINEスタンプの作り方
LINEスタンプの作り方
Aoi Motomura
RubyとRのおいしい関係
RubyとRのおいしい関係
sady_nitro
Rでを作る
Rでを作る
Nagi Teramo
お前”だれ”やねん? -2012年度社内向け年次活動報告-
お前”だれ”やねん? -2012年度社内向け年次活動報告-
Kazuhito Miura
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
Hitoshi Asai
2010/11/2 WebプログラマのためのScala入門勉強会@渋谷
2010/11/2 WebプログラマのためのScala入門勉強会@渋谷
wpscala
技術系同人誌を書こう #ssmjp
技術系同人誌を書こう #ssmjp
Masahiro NAKAYAMA
Eightにおけるエンジニア主導の取り組み
Eightにおけるエンジニア主導の取り組み
Sansan
MF GeeksNight pplogの話
MF GeeksNight pplogの話
Naoto Koshikawa
プロジェクトマネジメントと開発を両立したい!
プロジェクトマネジメントと開発を両立したい!
YASUKAZU NAGATOMI
Rails5クイックスタート
Rails5クイックスタート
Hirata Tomoko
人気の勉強会を逃さないシステム
人気の勉強会を逃さないシステム
ryonext Shimamoto
チーム開発積み重ね Rails Developers Meetup 2018 Day2
チーム開発積み重ね Rails Developers Meetup 2018 Day2
tatsuo sakurai
Similar to Rspec、あなたならどう書く? 20190626
(20)
Ruby StyleStatsの紹介
Ruby StyleStatsの紹介
ENGINEER WORK!!
ENGINEER WORK!!
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュ
20100619 wakhok important_of_io_with_jror
20100619 wakhok important_of_io_with_jror
Agile japan2012 agilesamurai_shinjuku
Agile japan2012 agilesamurai_shinjuku
WACATE2018Summer BPP yoshitake
WACATE2018Summer BPP yoshitake
プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話
LINEスタンプの作り方
LINEスタンプの作り方
RubyとRのおいしい関係
RubyとRのおいしい関係
Rでを作る
Rでを作る
お前”だれ”やねん? -2012年度社内向け年次活動報告-
お前”だれ”やねん? -2012年度社内向け年次活動報告-
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
2010/11/2 WebプログラマのためのScala入門勉強会@渋谷
2010/11/2 WebプログラマのためのScala入門勉強会@渋谷
技術系同人誌を書こう #ssmjp
技術系同人誌を書こう #ssmjp
Eightにおけるエンジニア主導の取り組み
Eightにおけるエンジニア主導の取り組み
MF GeeksNight pplogの話
MF GeeksNight pplogの話
プロジェクトマネジメントと開発を両立したい!
プロジェクトマネジメントと開発を両立したい!
Rails5クイックスタート
Rails5クイックスタート
人気の勉強会を逃さないシステム
人気の勉強会を逃さないシステム
チーム開発積み重ね Rails Developers Meetup 2018 Day2
チーム開発積み重ね Rails Developers Meetup 2018 Day2
Rspec、あなたならどう書く? 20190626
1.
RSpec あなたならどう書く? 20190626 gotanda.rb #37
2.
お前誰よ?
3.
自己紹介 •菅野 幸助 • バックエンドエンジニア (Rails歴3年くらい) •
Linc wellという医療スタートアップで Rails触ってます。 • 個人では最近Apollo + Typescriptなど • Twitter: @saiid_kk • Github: saiidalhalawi • note: https://note.mu/saiid114
4.
お仕事 https://jp.techcrunch.com/2019/05/27/linc-well-fundraising/
5.
ここから本題
6.
• Rspecでテストを書いていて「動くけど、本当にこれでい いんだろうか・・・」と、思うことありませんか? • レビューもCIもパスするし、問題がある訳ではないけ ど・・・ •
どうにもしっくりこない時がけっこうある -> 他の人がどう書いてるのか気になる • 色々な流儀や考え方を知りたい テストのモヤモヤ
7.
そこで、アンケートを とりたいと思います
8.
•「いつもこう書いてる」 •「規模やチームによる」 •「こっちの方が好き」 •「これ以外ありえない!」 •・・・etc 色々あると思いますが、 思い思いの判断基準でご回答ください。
9.
題して
10.
RSpec、あなたならどう書く?
11.
第1問
12.
Request Spec は
. . . 1. Actionごとに分ける 2. Controllerごとに分ける
13.
第2問
14.
System Spec は
. . . 1. 重いので大事なとこだけ 2. なるべく多くのケース書きたい
15.
第3問
16.
SharedExamples は .
. . 1. やり過ぎると逆に読みにくいので あまり使わない 2. DRY!DRY! 積極的に使う
17.
第4問
18.
before/after(:all) は .
. . 1. 便利だから使う時もある 2. Rubocopで禁止 https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeforeAfterAll
19.
第5問
20.
RSpec/NestedGroupsは . .
. 1. 構造化させたいので許可 2. Rubocopで禁止
21.
第6問
22.
テストデータの定義は . .
. 1. 呼び出し元でつくる 2. 呼び出し先でつくっておく
23.
第7問
24.
時間は . .
. 1. 止める 2. つくる
25.
第8問
26.
テストの説明は . .
. 1. 日本語 2. 英語
27.
第9問
28.
複雑な事前データは . .
. 1. beforeでまとめて派 2. letで組み上げる派
29.
第10問
30.
it スコープ内は .
. . 1. 絶対に汚したくない! 2. ある程度柔軟に
31.
以上で終わりです
32.
• Request Specは
・・・ Actionごと • System Specは・・・大事なとこだけ • SharedExamplesは・・・あまり使わない • before/after(:all)は・・・禁止 • NestedGroups・・・使う • テストデータの定義は・・・呼び出し元でつくる • 時間は・・・つくる • テストの説明は・・・英語 (背伸び) • 複雑な事前データは・・・letで組み上げる • itスコープ内は・・・絶対汚したくない! 私の場合
33.
回答を見ていると なんとなく人となりが 見えてきますね(!?) ‘’ Tell me
how you write RSpec tests, I'll tell you who you are. ’’
34.
皆さんは どうだったでしょうか?
35.
• Request Specは
・・・ Controllerごと • System Specは・・・大事なとこだけ • SharedExamplesは・・・積極的に使う • before/after(:all)は・・・ • NestedGroups・・・使う • テストデータの定義は・・・呼び出し先(Factory)でつく る • 時間は・・・つくる • テストの説明は・・・日本語 • 複雑な事前データは・・・letで組み上げる • itスコープ内は・・・ある程度柔軟に 当日のアジャイル集計結果(目視) やや優勢 やや優勢 ややこっち 優勢 やや優勢 優勢 やや優勢 圧倒的優勢 やや優勢 勝敗つかず(ケースによる)
36.
他にも「この2択は?」 というものがあれば 是非知りたいです
37.
WE ARE HIRING
!! 的な https://www.wantedly.com/projects/324351
38.
ありがとうございました m(_ _)m
Download now