Soumettre la recherche
Mettre en ligne
Rspec、あなたならどう書く? 20190626
•
0 j'aime
•
337 vues
K
Koske Kano
Suivre
2019-06-26 gotanda.rbの発表資料です。
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 38
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
世界一わかりやすいClean Architecture - DroidKaigiバージョン
世界一わかりやすいClean Architecture - DroidKaigiバージョン
Atsushi Nakamura
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
The only one big thing every programmer should know
The only one big thing every programmer should know
Takuto Wada
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
Recommandé
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
世界一わかりやすいClean Architecture - DroidKaigiバージョン
世界一わかりやすいClean Architecture - DroidKaigiバージョン
Atsushi Nakamura
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
The only one big thing every programmer should know
The only one big thing every programmer should know
Takuto Wada
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
ドメインモデルの育て方
ドメインモデルの育て方
増田 亨
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
どこに何を書くのか?
どこに何を書くのか?
pospome
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
Recruit Lifestyle Co., Ltd.
テストコードの DRY と DAMP
テストコードの DRY と DAMP
Yusuke Kagata
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
Ruby on Rails のキャッシュ機構について
Ruby on Rails のキャッシュ機構について
Tomoya Kawanishi
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!デベロッパーネットワーク
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
リーン開発の本質 公開用
リーン開発の本質 公開用
ESM SEC
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
Ruby StyleStatsの紹介
Ruby StyleStatsの紹介
Toshihiro Gotou
ENGINEER WORK!!
ENGINEER WORK!!
sinsoku listy
Contenu connexe
Tendances
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
ドメインモデルの育て方
ドメインモデルの育て方
増田 亨
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
どこに何を書くのか?
どこに何を書くのか?
pospome
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
Recruit Lifestyle Co., Ltd.
テストコードの DRY と DAMP
テストコードの DRY と DAMP
Yusuke Kagata
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
Ruby on Rails のキャッシュ機構について
Ruby on Rails のキャッシュ機構について
Tomoya Kawanishi
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!デベロッパーネットワーク
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
リーン開発の本質 公開用
リーン開発の本質 公開用
ESM SEC
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
Tendances
(20)
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
ドメインモデルの育て方
ドメインモデルの育て方
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
どこに何を書くのか?
どこに何を書くのか?
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
テストコードの DRY と DAMP
テストコードの DRY と DAMP
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
Ruby on Rails のキャッシュ機構について
Ruby on Rails のキャッシュ機構について
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
PostgreSQLアンチパターン
PostgreSQLアンチパターン
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
リーン開発の本質 公開用
リーン開発の本質 公開用
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Similaire à 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
Similaire à 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
Télécharger maintenant