Code igniterでテスト駆動開発 資料作成中
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Code igniterでテスト駆動開発 資料作成中

  • 4,248 views
Uploaded on

まだ作成途中ですが、意見をいただきながら作った方がよさげなので、作成途中の資料を晒してしまうことにします。

まだ作成途中ですが、意見をいただきながら作った方がよさげなので、作成途中の資料を晒してしまうことにします。

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • 上記修正しますね。
    ブランチを指定してのダウンロードはCurrent branchのところで、release/2.1.0を選択してから、zipのボタンをクリックすれば、そのブランチのソースを落とせます。
    Are you sure you want to
    Your message goes here
  • github の ci-ja のダウンロードだと、develop ブランチなので、2.1.0 ではなく 3.0 の途中になると思います。2.1.0 よりは先を行っていると思います。

    release/2.1.0 ブランチなら、2.1.0 ですが。

    ブランチ指定でダウンロードする方法ってあるんでしょうかね?見た限りわかりませんでした。
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
4,248
On Slideshare
4,245
From Embeds
3
Number of Embeds
1

Actions

Shares
Downloads
15
Comments
2
Likes
4

Embeds 3

https://twitter.com 3

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. C o d e Ig n it e r 2 .1 .0 ではじめるテスト駆動開発 2011.1.1 NEKOGET
  • 2. 目次1. CodeIgniterについて2. テス ト駆動開発3. ツールあれこれ4. 環境構築5. 実際にテス トを書く6. Jenkinsとの連携7.まとめ
  • 3. 1. CodeIgniterについて・CodeIgniterはオープンソースのPHPフレームワークです。・Elics Lob社が中心に開発をしています。・CodeIgniter2.1.0まではCodeIgniter独自ライセンスで開発されています。・CodeIgniter3よりライセンスがOSLランセインスに変更になる予定です。 ☆ E lics Lo b 社  http://ellislab.com/ ☆ C o d e Ig n it e r 本 家  http://codeigniter.com/ ☆ C o d e I g n i t e r日 本 ユ ー ザ 会  http://codeigniter.jp/ ☆ C o d e I g n i t e r日 本 語 化 G i t h u b   https://github.com/codeigniter-jp/ci-ja
  • 4. 1. CodeIgniterについて アプリケーションフローチャート http://codeigniter.jp/user_guide_ja/overview/appflow.htmlCodeIgniter は Model-View-Controller パターンに基づいて作られています。Application Controllerを軸にして、様々な処理が実行されます。所感 Application Controller部分が分厚く : なりがちですが、そこをどのように最適化   していくのか?を意識してコードを書いていく と気持ちよく書けます。
  • 5. 2. テスト駆動開発の効果テスト駆動開発のテストはデベロッパテスト デ ベ ロ ッ パ テ ス ト ” D e v e lo p e r t e s t s ” ) ( : ユニットテスト (”Unit tests”) 分離され、 - アトミックで、無害なもの。 これはxUnitによって実行されます。 結 合 テ ス ト ” In t e g r a t io n t e s t s ” ) ( : システムの状態を変更する可能性がある分離されたテスト。すなわちデータベースに保存したり、 ファイル に出力したりするもの。結合テストは機能要件をそのまま表すものではありません。 これはxUnitで書く と こ もできます。検証するのは対象となるコードと、サードパーティーのツールや自分たちが書いたコードの別 レイヤとの結合です。別のレイヤというのはつまり、ビジネスロジックレイヤがデータアクセスレイヤを要求 するといったものです。 機 能 テ ス ト ” F u n c t io n a l t e s t s ” ) ( :(システムテスト (”System tests”) とも呼ばれる)システムを全体と見た時の一部分、 つまり機能要求を実行するテスト。 このテストはシステムの状態を変更す るかもしれません。 プロダクトオーナテスト (”Product Owner test”) : 受入テスト (”Acceptance tests”) 技術側の人間ではないプロダクトオーナによって入出力が検証され - る機能テスト。
  • 6. 2. テスト駆動開発の効果何のためにテストが必要なのか?
  • 7. 2. テスト駆動開発の効果仕様 変 更に心 が折 な 為 必要 れいにTDDを身につける上で、目指すべきゴールは命綱としてテストコードを育てるという事
  • 8. 2. テスト駆動開発の効果誰のためにテストが必要なのか?
  • 9. 2. テスト駆動開発の効果コードを 書く自分自身の為に必要納期直前の仕様変更/変更した一部のコードの為に全ての機能を手作業で確認するの?
  • 10. 3. ツールあれこれ Unit Testを実行する為のツール。 1 . C o d e Ig n it e r 本 体 の U n it t e s t C la s s の 利 用 http://codeigniter.jp/user_guide_ja/libraries/unit_testing.html 2 . S im p le T e s t の 利 用 http://www.simpletest.org/ http://mistymagich.wordpress.com/2011/10/24/codeigniter-simpletest/ 3 . P H P U n it の 利 用 http://www.phpunit.de/manual/current/ja/ http://www.knollet.com/foostack/ CodeIgniterは疎結合ではないため、 CIUnitというライブラリを利用してPHPUnitが実行 できる環境を整えます。
  • 11. 3. ツールあれこれ 3 . P H P U n i t の 利 用 を中心にこの後の話を続けます。
  • 12. 4. 環境構築 1. PHPUnitのインストール 2.CodeIgniter2.1.0の設置 3.CIUnitの設置 4.ターミナルでの実行 5.Eclipse プラグインMakeGoodのインストールと設定
  • 13. 4. 環境構築 1. PHPUnitのインストール
  • 14. 4. 環境構築 1. PHPUnitのインストール P H P u n itを イ ン ス ト ー ル し ま す 。 h t t p : / / w w w . p h p u n i t . d e / m a n u a l / 3 . 6 / ja / i n s t a l l a t i o n . h t m l ※環境に合わせてインス トールを実行する必要があ ります。 $ pear config-set auto_discover 1 $ pear install pear.phpunit.de/PHPUnit
  • 15. 4. 環境構築 2.CodeIgniter2.1.0の設置
  • 16. 4. 環境構築 2.CodeIgniter2.1.0の設置 本家サイトよりDownload 解凍したものを利用 http://codeigniter.com/ 全て英語の為日本語の 言 語 ファ イ ル を 用 意 す る 必 要 が ありま す 。 ま だ リリ ー ス さ れ て い ま せ ん が 、 G i t h u b 上 に 2 .1 .0 の 日 本 語 対 応 中 の コ ード が 公 開 さ れ て い ま す の で そ れ を 利 用 す ると 手 軽 で す 。 https://github.com/codeigniter-jp/ci-ja
  • 17. 4. 環境構築 2.CodeIgniter2.1.0の設置 環境 : OSX + MAMP PHP5.3環境 (1) CodeIgniter2.1.0を下記に設置 /Applications/MAMP/htdocs/phpstudy/unittest/ ※Github 日本語化プロジェ トのコードを設置しました。 ク  G 動 な 環 で zip ァ ル ダ ン ー で ま 。ttp ith b m d n itが か い 境 も フ イ を ウ ロ ド き す h s://g u .co /co eig iter-jp/ci-ja/zip all/d elo b ev p http://localhost/phpstudy/unittest/ にアクセスすると、 上記画面が表示されます。
  • 18. 4. 環境構築 3.CIUnitの設置
  • 19. 4. 環境構築 3.CIUnitの設置(1)CIUnitのダウンロードh s://b u ttp itb cket.org jis/m n et/CI% 0 .0 .zip /ken y-ciu it/g 2 2 .3 2 .3 でが .1 で問な動ま。 .0 用す、.0 も題くきす 2 (2)Downdoadしたファイルを解凍(3)解凍したフォルダに移動 $cd cd { 解凍してできたフ ォルダ名}/tools/ $sh install.sh /Applications/MAMP/htdocs/phpstudy/unittest/ root root localhost /Applications/MAMP/htdocs/phpstudy/unittest/application/config/testing/databas e.php created
  • 20. 4. 環境構築 3.CIUnitの設置( 4 ) ( 3 ) の i n s t a l l . s h で 設 置 、作 成 さ れ た フ ァ イ ル を 確 認{CodeIgniter2.1.0設置フォルダ}/application/config/testing/database.php{CodeIgniter2.1.0設置フォルダ}/application/third_party/CIUnit{CodeIgniter2.1.0設置フォルダ}/tests{CodeIgniter2.1.0設置フォルダ}/tests/models/PhoneCarrierModelTest.phpを削除※ 際 md lの ス が か て て て 参 に りす 、ス 実 時 テ ブ が い でエ ー 発 し すそ た 削 し す 実 に o e テ ト 書 れ い 、 も 考 なま がテ ト 行 に ー ル な の 、ラ が 生 ま 。の め 除 ま 。 と 設置完了です☆
  • 21. 4. 環境構築 4.ターミナルでの実行
  • 22. 4. 環境構築 4.ターミナルでの実行タ ー ミ ナ ル で サ ン プ ル テ スト を 実 行 CIUnitを設置し、 正常に動作していることを確認します。 $cd{CodeIgniter2.1.0設置フォルダ}/tests/$phpunit
  • 23. 4. 環境構築5.Eclipse プラグインMakeGoodのインストールと設定
  • 24. 4. 環境構築 5.MakeGoodのインストールと設定(1)Eclipse を起動し、 メニューから Help → Install New Software... を選択(2) Addボタンをクリック 更新サイトを追加します。 し、Name : piece-frameworkLocation : http://eclipse.piece-framework.com/MakeGoodにチェックをし,Nextボタンをクリックします。Eclipseのインストーラの指示に沿って、 インス トールを完了してください。
  • 25. 4. 環境構築 5.MakeGoodのインストールと設定(3) PHPの設定を行います。メニューから、 [環境設定]を選択ください。 (4) Addをクリックしてください。
  • 26. 4. 環境構築 5.MakeGoodのインストールと設定 (5) 実行されるPHPのパスと,php.iniのパスを登録します。 [Finish]をクリックし、PHPの設定を終了します。
  • 27. 4. 環境構築 5.MakeGoodのインストールと設定 (6) PHP Debugger , PHP Executable を 先ほど設定したものに設定します。 [OK]をクリックし設定を有効にします。
  • 28. 4. 環境構築 5.MakeGoodのインストールと設定 (7) MakeGoodの設定をします。 ファイルを保存時に実行するテストを 選択します。
  • 29. 4. 環境構築 5.MakeGoodのインストールと設定 (8) ワークスペースの設定をします。 ワークスペースのフォルダを右ク リックし、 表示します。 設定する箇所は2カ所です。 PHPUnitを選択し、 [検索]ボタンを クリック tests/phpunit.xmlを選 し、 択します。 テス トフォルダの[追加]ボタンをクリックし、 tests/フォルダを指定し、[Apply]ボタンをクリックし、 [OK]ボタンをクリック します。
  • 30. 4. 環境構築 5.MakeGoodのインストールと設定 (9) 動作確認をします。 フォルダを右クリック 全てのテストを実行 し、 をクリックし、 テストを実行してください。
  • 31. 4. 環境構築 5.MakeGoodのインストールと設定 (10) MakeGood上でテストが実行され、 結果が見えれば設置成功です。
  • 32. 5. 実際にテストを書く チュートリアルを元にテストを書いていきます。 1.News機能を作る 2.仕様変更1 3.仕様変更2 作成中
  • 33. 6. Jenkinsとの連携 作成中
  • 34. 7. まとめ 作成中
  • 35. 0. 参考資料 makegood http://redmine.piece-framework.com/projects/makegood/wiki/A_continuous_test_runner_for_Eclipse_PDT