スポンサーサイト

2023.04.20 Thursday
0

    一定期間更新がないため広告を表示しています

    category:- | by:スポンサードリンク | - | - | -

    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
               12
          3456789
          10111213141516
          17181920212223
          24252627282930
          31      
          << March 2024 >>
          Selected entry
          PR
          Category
          Archives
          Recommend
          Link
          Profile
          Search
          Others
          Mobile
          qrcode
          Powered
          無料ブログ作成サービス JUGEM