タグ

cakephpとテストに関するorenonihongogayabaiのブックマーク (9)

  • 資産価値の高いテストを書くためにFabricateを使い始めました - BASEプロダクトチームブログ

    Product Dev Divisionの川島(@nazonohito51)です。 BASEでは創業当時よりCakePHPによるWebアプリケーション開発を行っており、同時にそのテストも充実させてきました。ですがその過程で気づくのは、CakePHP標準の仕組みだけではテストを増やせば増やすほどテストデータの管理が難しくなり、テストをメンテナンスするのが困難になる問題でした。きちんと長期的にサービスを良くしてくれる資産価値の高いテストが書けるように、今回はその問題と向き合い、解決するために@sizuhikoさんの開発されたFabricateというライブラリを導入したお話を書かせていただこうかと思います。 BASEの直面した課題 CakePHP2のFixtureという仕組み 詳細は公式ページを参照していただきたいのですが、CakePHP2にはテストデータを作るためのFixtureという仕組みが

    資産価値の高いテストを書くためにFabricateを使い始めました - BASEプロダクトチームブログ
  • CakePHP SimpleTest連携時のメッセージ文字化けを修正する方法

    CakePHPSimpleTestの連携で以下のようなソースを書いた。 $data = array('username' => 'hogehoge', 'password' => '1234567'); $this->User->create($data); $result = $this->User->validates(); $this->assertFalse($result, 'パスワードが7文字の時はエラーになること'); んで、失敗するテストとして実行したところ、テスト結果のメッセージ(パスワードが7文字・・・)が文字化けするので調べてみたところ、cake\tests\libにあるcake_reporter.phpに問題があることが分かったので今後のためにメモ。 問題となっているのは42行目 function CakeHtmlReporter($character_set =

    CakePHP SimpleTest連携時のメッセージ文字化けを修正する方法
  • CakePHPのテストに触れてみる。 - たかふーのブログ

    前回、CakePHPを使ってみることをしました。 今回はテストについて見てみます。 モデルのリレーションについて掘り下げた方が良いような気もしたのですが、プログラムを書くだけでテストを考慮しないなんてモモタロスのいない電王みたいなものなので、テストを取り上げます。 CakePHP 1.2 には、テストのための包括的なフレームワークが組み込まれています。このフレームワークは、PHP 向けの SimpleTest フレームワークを拡張したものです。この章では、テスト、それの構築および実行についての準備をどのようにするかを説明します。 no title 1.3のマニュアルの筈なのにCakePHP 1.2とか書いてあるのが気になりますが、それはさておき(というか、このセクションは1.2から変化ないようですね)CakePHPではSimpleTestという既成のテスティングフレームワーク的な何かが使わ

  • ひでぶろぐ。 cakePHPテストのモデルは、まとめた方がいい

    [PR] 今日のニュースは?? : 2ch自動まとめキュレクス [PR] 名言や格言をどうぞ! : 名言満載! [PR] 副業したい? : 出張ホスト募集中 [PR] SEO最高峰のクオリティー : 知る人ぞ知る、SEOUP.com。テラプレミアムアクトは抜群におすすめ! [PR] 口コミ対策 : 口コミでSEO対策。なんとびっくり、1円からご利用頂けます。 [PR] 出張キャバクラアゲハ : ちょっとした飲み会のお供に。デートのお相手に。 コンポーネントをテストするのに Fake モデル。 ビヘイビアをテストするのに Fake モデル。 と書いていると、グループ化して一気にテストケースをやったときに 同じクラスが被ってるよと怒られる。 なので、 Fake モデルは一カ所に書いて、それをまとめて読み込もう。 ○/app/plugins/signup/tests/cases/models/m

  • CakePHPでフィクスチャに惑わされずにテストを書く方法

    前回挙げたチュートリアルはやってみましたか? 快適なテストライフを送ってますか? テストケースをたくさん書いていると気づくのは、フィクスチャがメンテナンスの邪魔をするということ。 フィクスチャに初期データを定義すると、それを気にしながらテストケースを作ることになります。 これがとても面倒くさいんです。 これを解消すべく、今日はモックを使ったテストケースの書き方を紹介します。 モックとは SimpleTestのモックで参考になるのは、以下の書籍です。 Webアプリケーションテスト手法 著者: 水野 貴明 (著), 石井 勇一 (著), 新藤 愛大 (著), 岸田 健一郎 (著), 荻野 淳也 (著), 安井 力 (著), 田中 慎司 (著) 出版社: 毎日コミュニケーションズ 発売日: 2008/7/25 この書籍のp154にモックについて以下のように書いてあります。 モックを使うと

  • takeda-soft.jp

    takeda-soft.jp 2024 著作権. 不許複製 プライバシーポリシー

  • 1-byte.jp - CakePHPを使ったテスト駆動開発

    ブログ初ポストはCakePHPを使ったテスト駆動開発です。 CakePHPはユニットテストとしてSimpleTestに対応しています。 SimpleTestをインストールするだけで、モデルやコントローラ、シェル、ルーティングクラスなどのユニットテストが出来るようになります。 今日はこのCakePHPSimpleTestを使ってテスト駆動開発の流れを説明します。 ただ、僕自身テスト駆動開発を学んだのは去年のCake祭りなので、至らない点が多々あります。 もし何かあれば、コメントでご指摘ください。 今更感もありますが、この場を借りてCake祭りでテスト駆動の指導をしてくださった、@sizuhikoさんに感謝します。 開発手順 まずは開発手順を示します。少し細かいですが、テスト駆動では以下のような順で開発していきます。 設計する。 テストケースを書く。 テストケースをデバッグする。 コー

  • CakePHP routes.phpの確認はユニットテストで

    routes.phpを仕様に合わせて設定しておきます。 <?php // Router::connect('/:user_id/edit', array('controller' => 'user', 'action' => 'edit')); Router::connect('/', array('controller' => 'top', 'action' => 'index')); Router::connect('/:user_id/*', array('controller' => 'user', 'action' => 'index')); // Nothing Router::connect('*', array('controller' => 'nothing')); ?> 最後はシステムが取るべきURL以外ならNot Foundを出すように設定しています。これにより想定外

  • CakePHPアプリをHudsonで継続的インテグレーションする方法

    この記事はCakePHP1.2系またら1.3系を対象としており、CakePHP2.0系では別のアプローチになります。 不思議なことにCakePHPアプリの開発でHudson使って継続的インテグレーションしている事例をほとんど見たことがないんだけど、個人的にはPHPアプリだって全部HudsonでCIすべきと思っているのでやってみた。 (ちなみに最近までphpUnderControlでCIしていた) 概略 CakePHPアプリでCIやろうとして問題になるのは、 CakePHPでのテストライブラリがSimpleTestでありJUnit互換のテスト結果を出力できないこと さらにSimpleTestでは一応XMLでの結果出力ができるのに、CakePHPreporterにcake_xml_reporterとかが無くて、html出力かテキスト出力しかできない という2点にあるので、この2点をクリアする

    CakePHPアプリをHudsonで継続的インテグレーションする方法
  • 1