phpunit laravel

2016.11.06 Sunday 17:23
0
    http://www.techigniter.in/blogs/tutorials/query-logging-in-laravel-5/

    ・requestの形を統一する
    Mockery;
    https://medium.com/laravel-4/laravel-4-controller-testing-48414f4782d0#.qreur0n73
    ・repositoriテスト
    http://www.developer.com/services/testing-controllers-in-laravel-with-the-service-container.html
    Mockery::
    クラス内でnewしないようにする
    http://tech.aainc.co.jp/archives/3918
    https://readouble.com/laravel/5.1/ja/testing.html
    ----------


    namespace Formativ;

    use Illuminate¥Http¥Request;
    use Str;

    class PostRepository implements PostRepositoryInterface
    {
    public function __construct(Request $request)
    {
    $this->request = $request;
    }

    public function insert()
    {
    $data = [
    "title" => $this->request->get("title"),
    "subtitle" => $this->request->get("subtitle"),
    "body" => $this->request->get("body"),
    "author_id" => $this->request->get("author"),
    "slug" => Str::slug($this->request->get("title"))
    ];

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

    validate
    in:foo,bar,... ★これ 存在チェックこれでいいんじゃね?
    exists:table,column ★これつかえるんんじゃね?しかし複数キーだしな・・・
    required_if:他のフィールド,値,...★ アクションTBLの スクリプト メール
    引数で指定された他のフィールドフィールドが、値のどれかを持っている場合に、このフィールドが入力されていることをバリデートします。


    required_if:state:0 ★スクリプト実行が選択されているときに必須とする
    $rules = [
    'name' => 'required|max:40',
    'gender' => 'required|in:male,female',
    'age' => 'digits_between:0,150',
    'use_discount' => 'boolean',
    'coupon' => 'required_if:use_discount,1|regex:/^[0-9a-zA-Z]{20}$/',
    ];


    ・トレイリングスラッシュについて ★
    URLは基本的に/exampleか/example/のどちらかに統一するのが通常かと思いますが、
    Laravelは/なしの方に寄せるほうが断然楽です。開発が始まる前になくなるように根回ししましょう。





    ・laravel debugger は、
    .env で
    APP_DEBUG=false # 実際に公開するアプリケーションは必ずfalseを設定(true/false)
    にすれば、app.php をさわらなくても laravel debuggerオフになるよ

    ・HOME_URL の設定
    config/local/app.php で
    //if (App::environment('local'))
    をやろうとしたが、うまくいかなかったのであきらめた
    →現状の env_application.php の if(/var/www/html/production.php)
    で判断しよう! laravelにあわせようとしたができんかったね


    ・validate
    in:foo,bar,...
    lavavelバリデートで以下を設定
    'title' => 'required|in:"あああ","いいい","ううう"',
    すると、上3つ以外を入力すると以下のエラーになる
    選択されたtitleは正しくありません。
    selectboxに追加しよう

    radio selectbox はこれ」対応する
    ・Config::get('app.timezone') 設定

    http://cheats.jesse-obrien.ca/

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

    スポンサーサイト

    2019.09.17 Tuesday 17:23
    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