laravel phpunit

2016.10.23 Sunday 23:41
0

    public function testNewUserRegistration()
    {
    $this->visit('/register')
    ->type('Taylor', 'name')
    ->check('terms')
    ->press('Register')
    ->seePageIs('/dashboard');
    }


    メソッド 説明
    $this->type($text, $elementName) 指定したフィールドに「タイプ」します。
    $this->select($value, $elementName) ラジオボタンかドロップダウンフィールドを「選択」します。
    $this->check($elementName) チェックボックスフィールドを「チェック」します。
    $this->attach($pathToFile, $elementName) フォームにファイルを「添付」します。
    $this->press($buttonTextOrElementName) 指定したテキストか名前のボタンを「押し」ます。


    seeJsonメソッドは渡された配列をJSONに変換します。次にそのJSONが、JSONレスポンス全体のいずれかに現れるかを確認します。ですから、他のプロパティーがJSONレスポンスに含まれていたとしても、指定した部分が存在する限り、テストはパスします。

    JSONと一致するか確実に検証
    指定した配列がアプリケーションから返されるJSONと完全に一致するかを確認したい場合は、seeJsonEqualsメソッドを使用してください。


    class ExampleTest extends TestCase
    {
    /**
    * 基本的な機能テストの例
    *
    * @return void
    */
    public function testBasicExample()
    {
    $this->post('/user', ['name' => 'Sally'])
    ->seeJsonEquals([
    'created' => true,
    ]);
    }
    }

    カスタムHTTPリクエスト
    アプリケーションに対してカスタムHTTPリクエストを作成し、
    完全なIlluminate¥Http¥Responseオブジェクトを取得したい場合は、callメソッドを使ってください。

    public function testApplication()
    {
    $response = $this->call('GET', '/');

    $this->assertEquals(200, $response->status());
    }


    laravel input と request の違い

    フォームから一つの値を取得するにはInput::get()メソッドを使用します。



    Blade操作|データ表示
    {{ }}文は、XSS対策としてエスケープしてくれます。
    1
    {{ $name }}
    {!! !!}文は、エスケープしません。

    1
    {!! $name !!}



    CSRF対策
    csrf_field関数を使うと、CSRF対策用のトークン値を持つフィールドを生成してくれます。

    {{ csrf_field() }}

    「VerifyCsrfTokenミドルウェア」にて、「リクエストのトークン」と「セッションのトークン」が一致するかチェックしてくれます。


    configヘルパー関数でconfigデータを取得できます。
    $value = config('app.timezone');
    // デフォルト値指定
    $value = config('app.timezone', $default);
    http://www.dn-web64.com/archives/web/laravel-cheat/
    http://qiita.com/k-okada/items/c92a3f3594d751d42740

    category:phpunit | by:ittoocomments(0)trackbacks(0) | -

    laravelでのテスト phpunit

    2016.10.10 Monday 17:07
    0
      phpunitからのテスト実行 プロジェクト直下から実行する

      ¥htdocs¥nacagacco>phpunit .¥tests¥UserTest
      PHPUnit 4.8.27 by Sebastian Bergmann and contributors.

      Time: 8.28 seconds, Memory: 8.00MB

      OK (1 test, 1 assertion)


      ・laravelでのテスト ここを見るべし
      https://readouble.com/laravel/5.1/ja/testing.html
      category:phpunit | by:ittoocomments(0)trackbacks(0) | -

      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) | -

        ad
        Calender
         123456
        78910111213
        14151617181920
        21222324252627
        28293031   
        << May 2017 >>
        Selected entry
        PR
        Category
        Archives
        Recent comment
        • Ready Boost測定usb2個使用して測定した
          TwoFactor Authentication
        • マクドナルドで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サービスがつながらない
          えちごや
        • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
          touch
        Recent trackback
        • スマートフォンの法人活用例
          無線LANネットのブログ
        • Yahoo!オークションからのアフィリエイト収入が一気に70%減になってしまい涙目になってる話
          特選情報
        Recommend
        Link
        Profile
        Search
        Others
        Mobile
        qrcode
        Powered
        無料ブログ作成サービス JUGEM