Symfony勉強会 #9 sopraを支えるテストコード

2,905 views
2,878 views

Published on

http://symfony.doorkeeper.jp/events/9791
#symfony_ja

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,905
On SlideShare
0
From Embeds
0
Number of Embeds
1,986
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Symfony勉強会 #9 sopraを支えるテストコード

  1. 1. はじめに •弊社自社サービス sopra を開発したときの話 が中心です。 http://sopra.jp/ •テストコードの話をしますが、いわゆる How To 的な話ではなくて、実際のプロダク トでどういった部分にテストを書くと効果的 なのか、といった話をします。
  2. 2. 自己紹介 •@imunew •2013年5月からヒトメディアにて副CTO •ヒトメディア以前は、 MJS→JIC→FSI→gloopsと転々と •ヒトメディアでは、コードも書きますが、 見積書や請求書も書きますし、経営資料も作 ります。エンジニアの面談もやります。
  3. 3. Symfony勉強会 #8 •ヒトメディアに入社したばかりの頃。 社内のプロダクトはSymfony1.4で作られた ものがほとんど。 2系に移行したいと思っていたのでエンジニ アを2名連れて参加してみた。 •この勉強会をきっかけに、Symfony2.3、 Silexを使ってプロダクトを複数開発していま す。
  4. 4. 2013年7月 •Silexで Console Application + Web な管理 サイト作った後に、自社サービスとして社会 人向け映像学習サービス「sopra」を開発す ることに。 •2013年1月から企画はあったが、メインの受 託開発でそれどころではなく、Wordpress + Membership プラグインで作るみたいな構想 だった。
  5. 5. Wordpress... •Wordpressレガシーすぎる http://mask-legacy.tumblr.com/post/62315583278/in-wordpress-phpcon2013-wctokyo (レガシーコード in WordPress) •基本ブログ以外の用途には使えないと思った ほうがいい •Wordpress案を捨てて、Symfony2で作る判 断をしたときに既に7月下旬、9月中旬リリー スだから実質1ヶ月ちょっとしかない
  6. 6. とにかく作ろう •エンジニア3人で開発 •この段階ではテストコード無し •Symfony2学習コストそれなりに高い •ページによって非ログイン状態でもページ見 せたいだけなのに anonymous: にたどり着くまで2日はかか た気が
  7. 7. 2013年9月13日
  8. 8. 正式リリースに向けて •プレオープン時は全コンテンツ無料だが、 正式リリースでは月額課金にして有料コンテ ンツを配信 •課金周りの実装を担当 •会員登録した月のみ初月無料特典がある。 •その他、授業や動画をクリップできたり、コ メントやレーティングできたりとプレオープ ンに間に合わなかった機能を実装
  9. 9. 月額課金以外と大変 決済処理のパターン多い いわゆる状態遷移モデル
  10. 10. そうだテスト書こう •phpunitのインストール •はじめはControllerのテストから •ログインしたことにして ページ遷移して formに値セットして submitして crawlerで画面表示項目をチェック 状態が期待通り遷移しているかチェック
  11. 11. モックも使ってみよう •決済処理には多くのエラーケースが存在する •カードの有効期限切れなどは、故意に発生さ せにくい •モックオブジェクトに任意のエラーを返して もらおう •決済会社が用意してくれているテスト環境で は出せないエラーでも自由自在だし、そこは テストの範囲ではない
  12. 12. テストでハマったところ •ページ遷移したときに、entityManager使い まわしていると、例外発生したので、ページ 遷移後にインスタンスを再生成することに •FixtureBundleでデータを投入する前に、 truncate tableしたいのに、関数が用意され ていないので、実装 •技術的な部分はblogにまとめてあります。 http://imunew.github.io/blog/
  13. 13. 2013年11月1日 無事、正式リリース
  14. 14. そして2014年 •3月、大人の事情により、課金バッチ停止 5月中旬まで全ての動画を無料で公開してま す。 •5月末にアップデートを行い、授業個別での課 金に変更する予定です。 •新たな決済処理でも懲りずにテストコード書き ます。
  15. 15. ステマ要素満載ですが •sopra.jp 今なら全ての動画が無料で視聴可能 ですので、ぜひ会員登録をよろしくお願いしま す。
  16. 16. ご清聴ありがとうございました。

×