phpunit

2016.10.03 Monday 00:57
0
    composer.jsonで、本番環境に必要ないのは
    require-dev に記述する

    続いてcomposer.jsonを作成します。PHPUnitは、本番環境の動作に必要無いのでreuqire-devに指定しましょう。
    {
    "name": "hogehoge/fugafuga",
    "autoload": {
    "psr-4": {
    "UnitTest¥¥Sample¥¥": "src/app"
    }
    },
    "require": {
    },
    "require-dev": {
    "phpunit/phpunit": "3.7.*",
    "phake/phake": "2.*"
    }
    }

    phpunit.xmlを作るのよ

    bootstrap="./tests/bootstrap.php"
    colors="true"
    convertErrorsToExceptions="true"
    convertNoticesToExceptions="true"
    convertWarningsToExceptions="true"
    verbose="true"
    stopOnFailure="true"
    processIsolation="false"
    backupGlobals="false"
    syntaxCheck="true"
    >

    ./tests




    Phakeって何よ?」って話ですね。これはモッキングフレームワークです。
    PHPUnitにも強力なモッキングフレームワークは内蔵されているのですが、
    こいつが結構堅苦しいヤツでして、テストコードの殆どがモックの生成に
    費やされる羽目になることもあり、それだとテストコード見るのも嫌になっちゃうので、僕はPhakeを愛用しています


    @group を使います。
    手におえるサイズにしてリファクタリングしていきましょう。
    このようにテストメソッドのアノテーションにグループ名をつけます。
    * @group current
    するとPHPUnitで、group名を指定して、該当グループのみ実行することが出来ます

    最初にエラー又は失敗時にテスト実行を止める
    先ほどの、 @group より簡単なのが、 --stop-on-failure です。

    実装がされていない空のテストを除外してテストをすることも出来ますが、「未実装です」ということを明示した方がよいと思います。
    未実装であるということをマーク付するには markTestIncomplete を使います。

    $this->markTestIncomplete(
    'まだ実装されていません。'
    );
    Iという未実装(Incomplete) のマーキングがされました。

    -------------------------

    PHPUnit には、既存のクラスからテストクラスの雛形を生成する機能があり

    PHPUnit でモデルのテストクラスの雛形を生成してみるAdd Startmd45mukaken
    phpunit --skeleton-test Blog_model ../application/models/blog_model.php

    phpunit --skeleton-test Article ../app/Article.php


    model, controller, 404, monkey patch, db と
    ツボを押さえた良いスライドになっています。

    MonkeyPatch

    オブジェクトの置き換えとして、 Mock を使うことで大体はカバーできるのですが
    PHPでは「オブジェクトじゃないので Mock が作れない問題」に遭遇します。
     
    そんなときに使える MonkeyPatch 機能はとても強力です。 このスライド見るまで気づかなかったのですが、なんと定数にも使えます!
    PHPは定数の書き換えができなくて、テスト書くのを断念していた箇所があったのですが これ使えばよかったんですね。
    http://www.slideshare.net/tetsuroy/code-igniter-ci-phpunittest
    -------------------------

    Laravel5でテスト(PHPUnit)
    http://qiita.com/zaburo/items/839c81a1e166a48fe3fa
    phpunit.xmlがカレントディレクトリに存在する場合、単にphpunitとコマンドを単独で実行すれば設定ファイルを読み込んでくれます。
    でディレクトリを指定しておくと、その配下に存在するテストコード*Test.phpを全部見つけてきて、
    テストしてくれます。ディレクトリ構造が複雑でも再帰的に探します。include文にいちいち悩む必要もなく、
    テストコードからはシェバング行を取り除くことができ、きれいになりますね。


    @testアノテーションを使う、日本語でテスト名をつける
    テストメソッドは「test」で始まる名前をつける他、アノテーションでも指定できます。
    テスト名を日本語でつけたい場合、始まりが「test」だと不格好なので、アノテーションを使うようにしています。

    -------------------------











    ※PHPUnit Skeleton Generatorとは?
    PHPUnit Skeleton Generator は、テストケースクラスをもとにしたクラスの雛形を自動的に生成するのに利用します。

    NetBeans IDE 7.0.1でPHPUnitを使った単体テストの実験をしてみた。オプション設定で躓いたので備忘録的にまとめておきます。
    1:メニューから[ツール]>[オプション]を選択する。
    2:単体テストタブを選択する。
    3:PHPUnit スクリプトを C:¥xampp¥php¥phpunit.bat から参照する。



    ・laravel
    モデル
    view
    コントローラー
    テスト
    自動生成
    netbeans phpunit

    modelの場所


    tasklist /?


    PHPUnitおよびスケルトン・ジェネレータのスクリプトのパス
    の設定からね
    それでテストを自動生成するよ
    category:phpunit | by:ittoocomments(0)trackbacks(0) | -

    スポンサーサイト

    2019.09.17 Tuesday 00:57
    0
      category:- | by:スポンサードリンク | - | - | -
      Comment








         
      Trackback
      この記事のトラックバックURL

      ad
      Calender
        12345
      6789101112
      13141516171819
      20212223242526
      2728293031  
      << October 2019 >>
      Selected entry
      PR
      Category
      Archives
      Recent comment
      • パス指定 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated ¥xXX escape
        久米隆文
      • 円マークが自動変換されてる
        aaaaaa
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        66hills
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        ssd
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        max
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        DOM
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        DOM
      • コンピュータ業界の根本的な変化
        cloud
      • コンピュータ業界の根本的な変化
        Dellの仮想化
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        えちごや
      Recent trackback
      • スマートフォンの法人活用例
        無線LANネットのブログ
      • Yahoo!オークションからのアフィリエイト収入が一気に70%減になってしまい涙目になってる話
        特選情報
      Recommend
      Link
      Profile
      Search
      Others
      Mobile
      qrcode
      Powered
      無料ブログ作成サービス JUGEM