This is Part I of a multi-part series. Below are the links to other parts of this tutorial! Unit Testing Tutorial Part I: Introduction to PHPUnit Unit Testing Tutorial Part II: Assertions, Writing a Useful Test and @dataProvider Unit Testing Tutorial Part III: Testing Protected/Private Methods, Coverage Reports and CRAP Unit Testing Tutorial Part IV: Mock Objects, Stub Methods and Dependency Injec
Editor's Notes\n\n\n\n\nユニットテストの説明に前に本講義で多用されるオブジェクト指向と&
Goutte という PHP 製の Web スクレイピングライブラリを使って Web ブラウザを操作するテストを書いてみたのでサンプルを紹介します。 Goutte とは、Symfony 開発者の Fabian が手がけるライブラリです。Symfony コンポーネントの BrowserKit, CssSelector, DomCrawler ほか Guzzle HTTP というライブラリを使っていて、PHPUnit と組み合わせることで Symfony のファンクショナルテストと同じ感覚でブラウザテストを書くことができます。 レガシーな PHP アプリケーションのテストに悩んでいる方は選択肢のひとつとして参考にしてみてください。サンプルは karakaram/goutte-sample - GitHub に置いておきます。 動作確認環境 PHP 5.6PHPUnit 4.7Goutte 2.
privateメソッドのテストは、複雑なデータ構造を扱う時など開発途中で時々どうしても書きたくなります。 その外のpublicのテストでカバーできたら、private のテストは捨てちゃったりしますが。 Rubyだと send 使って何でもできるのに、と思いつつ調べつつPHPでテスト書いてみました。 PHPだと? PHP5.4時代のprivateメソッドテスト手法 #php5_4: Architect Note こちらが詳しいのですが 5.3以前だとReflectionMethodを使う方法がありますが、 5.4以降だとClosureが使えます。 5.3のClosureだと$thisが渡せなくて辛い想いを経験したことがありますが 5.4以降で対応してくれたようです。 ($thisのcontextを変えれえないのはclosureとしては辛い。。) Closure::bind を使った例 最近
ci-phpunit-test for CodeIgniter 3.x An easier way to use PHPUnit with CodeIgniter 3.x. You don’t have to modify CodeIgniter core files at all. You can write controller tests easily. Nothing is untestable, maybe. Well documented. Requirements PHP 7.3 or later If you use PHP 7.3 or later and Monkey Patching, you must use PHP-Parser 4.2 or later as a Composer dependency. CodeIgniter 3.x PHPUnit 9.3 o
などとすると,テストケースごとにTRUNCATEしているのにテストケースBでModel_Fooのエンティティが取り出されてしまう. この問題に対し,ORMのキャッシュをクリアすることで解決を図った. リフレクションによる解決 Orm\Modelは$_cached_objectsという静的プロパティにオブジェクトをキャッシュしているが, Orm\Modelにはこの変数をクリアするメソッドが提供されていない. http://tech.respect-pal.jp/fuelphp-orm-cache/ ではOrm\Modelを継承した独自クラスを作り,$_cached_objectsをクリアするメソッドを追加して解決している. しかし,既に多くのクラスがOrm\Modelを継承するようになっているのを,独自クラスを継承するよう書きなおすのはしたくなかったので, (テストでのみ利用される独自クラス
CodeIgniter 2.xの時代にはCIUnitというツールを使い、CodeIgniterでPHPUnitによるテストを書いていました。 CodeIgniter 3.0時代になり状況がどう変わったかというと、CodeIgniter本体のテストは進んだようですが、アプリケーションのテストをどうするかという問題は公式にはとくに変化はないようです。 そして、実際にどのようにしているかについては、割と混沌としていました。 fmalk/codeigniter-phpunit ... 一番人気? Celc/CIUnit ... my-ciunitのfork。3.0未対応? RodolfoSilva/CIUnit-for-CI3 ... CIUnit-for-CI2のfork NEKOGET/CIUnit-for-CI3 ... CIUnit-for-CI2のfork PHPUnit and Cod
CodeIgniter標準のテストは貧弱なのでPHPUnitが使える実装を探していました。 いくつかあるようなのですが、公式forumで検索すると以下が出てきました。 CI PHPUnit Test for CodeIgniter 3.0 ci-phpunit-test kenjis/ci-phpunit-test おすすめ要素としては ・CodeIgniter3準拠 ・Product Ownerが日本人(kenjis) FuelPHPの本書いている鈴木さんなので安心です。 pull requestも速攻取り込んで改良もしてくれました。 これ読んでないけど、そのうち読んでみようと思います。 はじめてのフレームワークとしてのFuelPHP 改訂版 作者: 鈴木憲治出版社/メーカー: ラトルズ発売日: 2014/10/25メディア: 単行本(ソフトカバー)この商品を含むブログ (2件) を見る
概要 NetBeansのPHPUnitの設定(プロジェクトごと)は、以下のものがあります。 プロジェクトのプロパティ > PHPUnit ブートストラップの使用 XML構成の使用 カスタム・テスト・スイートの使用 カスタムPHPUnitスクリプトの使用 PHPUnitを使用してすべての*Testファイルを実行 テスト実行前にテスト・グループの入力を求める 今回は、「カスタムPHPUnitスクリプトの使用」について紹介したいと思います。カスタムPHPUnitスクリプトとは、PHPUnit実行時のオプションをいろいろと設定して使うものです。ドキュメントにも使い方が詳しく載っていないので、最初はどのように使ったらいいのかわからないかもしれません。簡単な使い方を説明したあとに、デフォルトで使われるNetBeansSuite.phpファイルを別のファイルと入れ替える方法も説明します。 Step 1
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く