最近になってPHPUnitをちゃんと使ってユニットテストを書くようになってきたのですが、まだまだTipsが足りないと感じます。個人的に実践している書き方をいくつか並べてみます。 追記:最初、シェバングと書いていましたが、オプションを渡せる数が決まっていたりOSによっては動かなかったりとあまり便利でないことがわかりました。。phpunit.xmlを書いた方がいいかも。 ちょっとしたテスト → シェルスクリプト化する PHPUnitは高機能なのですが、いかんせん最初の障壁が高いと思います。とにかく気軽に書きたいなら、シェルスクリプトを作って単独ファイルで実行できるようにするといいです。 #!/bin/sh phpunit --colors *Test.php # ↑オプションを書き並べておく <?php class SampleTest extends PHPUnit_Framework_Te
前置き 地味にこの記事が読まれ続けているみたいなのですが、内容がよい加減に古くて心苦しいので、もうちょっと現代的な内容にマイグレーションしたものを投稿しようと思います。当時と違ってQiitaにもよい記事増えているのに今更感あるのですが、あの記事に辿りついてしまった人のため……という感じで書いておきます。 大前提 PHPUnitを使ったからといって、どんなソースコードもテストできる訳ではありません。テストをし易いようにクラスを設計している必要があります。また、そのように設計していてもUnitテストに入れることの出来ない箇所は出てきます。Unitテストに入れることの出来ない箇所は出来ないと割り切らなければなりません。むしろ、どれだけのコードをUnitテストに入れることが出来るか? というのが設計者の腕の見せどころになるでしょう。極論を言うと 「どんなクラスでも疎結合に実装していなければならない
Prophecyとは phpspec/prophecy PHPUnitと組み合わせて使えるモックライブラリ。 元はphpspecの一部として開発されたもので、phpspecと組み合わせなくても単独で使うことができる。 PHPUnit 4.5からパッケージに同梱されるようになった。PHPUnitの新しいバージョンを使っていれば、composer.jsonに加えなくても使うことができる。 テストダブルとは ユニットテストを書くときに、テスト対象の依存の代替として使うオブジェクトをテストダブルと言う。目的はいくつかある。 依存オブジェクトの準備を手抜きする。100行の準備をしないとテストが書けないとしたらユニットテストが読みにくくなってしまう。 実行しづらいメソッドを差し替える。外部へ通信してしまうもの、I/Oが発生するもの、すごーくたまにしか失敗しないものなどを強制的に変更したいとき。 メソッ
User_Centric_Tests Codeception provides high-level domain language for tests. Tests are represented as a set of user's actions. Learn More Browser_Testing Tests can be executed using Firefox, Chrome, Safari or Cloud Testing services with Selenium WebDriver. Browser can be emulated with HTTP-requests through CURL with PhpBrowser. Learn More Framework_Testing Tests can be executed inside a PHP frame
この記事は Symfony Advent Calendar 2012 4日目の記事です。 Symfony はバージョン 2.1 からパッケージの管理に Composer を使用するようになりました。2.0 時代の deps ファイルは削除され、autoload まわりが大きく変わりました。Symfony2.1 の勉強を進めていたところ、日本語でインストール方法を解説している記事が少ないと感じたので、今回整理してみました。 この記事では、Composer を使った Symfony2.1 のインストール方法、更新方法、サードパーティ製のバンドルを追加インストールする方法などを紹介します。おまけで PHPUnit を Composer からインストールする方法も紹介します。 動作確認環境 Symfony 2.1.3PHP 5.4.8 目次 事前準備 Composerをインストールする Symfo
2011-12-07 PHP5.4 で Symfony2 は速くなるのか? ラベル: PHP, PHP5.4, symfony2 ツイート Symfony Advent Calendar JP 2011 7日目です。 6日は @uechoco さんによる [Symfony2]入出力の文字エンコードを変換してみよう Symfony Advent Calender JP 2011 – 6日目- でした。 さて、@uechoco さんから「MongoDB JPにも所属している@madapajaさん」と紹介いただき、これは MongoDB ネタをやれってことかな?とか考えてしまいましたが、今回は PHP5.4 がらみのことを。 PHP5.4 は速くなっているらしいと風の噂で聞いたものの、Symfony2 は速くなるのかなと思ったので試してみました。 環境によって結果が異なると思いますが、今回は
ブログryuzeeによるブログ記事。不定期更新HomeブログSelenium + PHPUnitで簡単エンドツーエンドテストを実⋯⋯ ここではSeleniumとPHPUnitを使って簡単にスモークテストを実現する方法を解説します。 基礎的な内容ですが、復習ということで。 下準備FirefoxにSelenium IDEをインストールするSelenium Serverを導入する(※ダウンロードへの直リンクはこちら)どちらもhttp://seleniumhq.org/download/からダウンロード可能です。Selenium IDEを使ったテストケースの作成もうこれはあちこちのサイトで説明されているので特に説明の必要はないでしょう(笑) 簡単に言えば、Firefoxを起動し、さらにSelenium IDEをたちあげて、操作を記録していけば良いだけです。 参考サイト SeleniumでWebアプ
PHPUnitとそのメリット 本連載では、PHP(PHP: Hypertext Preprocessor)で実装されたプログラムの単体テストをテスト・ツール「PHPUnit」を使って行う方法について、基本から実践的な利用方法までを4回にわたって紹介します。 ユニット・テスト(単体テスト)とは、プログラムの構成要素であるクラスや関数などの単位で動作を確認するためのテストです。PHPUnitを利用することで、単体テストの手順をPHPプログラムとして作成し、コマンド・ラインなどからバッチ処理的に実行することが可能になります。 PHPプログラムのテストと言えば、もっぱら人手でブラウザを操作して画面遷移を確認したり、フォームに値を入力して実行結果を目で確認したりすることが一般的だと思います。しかし、開発時に何度も同じようにページを開いて、同じようにテスト・データを入力し、結果が正しいことをすべて手動
TDDBC in TokyoをPHPUnitでやる予定なので、TDD関連資料をあさってました。 実際に手を動かして、1から2時間で最後までやり通せるTDDの資料を見つけました。 TDDに興味を持った方が最初にやるのにちょうど良い内容なので、お知らせします。 オブラブで公開されている車窓からのTDDです。Java+JUnitの構成で書かれていますが、PHP+PHPUnitで、ほとんどPHPっぽく書き直せば問題なくTDDの雰囲気を学べる内容です。 Fake It 三角測量 リファクタリング などのタイミングを具体的に理解できるストーリー仕立てになっています。内容のボリュームもお手軽なので、TDDに興味のある方は、やってみてはいかがでしょうか?TDDの良さが体験できると思います。 PHPのコードをgithubで公開しています。「PHPでどう書くの?」って思った方は参考にしてください。
ちょっとした、出来心でselenium RCを使ってみました。 Firefoxなら、Selenium IDEでOKなんですが、JSの部分はIEでのテストが必須になるのでRCを使った次第です。 結果として、僕のPCのIEがなぜか固まることのぞけば概ね良好。 こちらのサイトを参考に試してます。 http://tech.feedforce.jp/selenium_rc.html http://colo-ri.jp/develop/2008/02/selenium_rc_seleniumserverjar.html 以下手順です。(JAVA必須) まずはPHPUnit3とselenium関連を開発サーバにインストール sudo pear install -a Testing_Selenium-beta pear channel-discover pear.phpunit.de sudo pe
Welcome! I assume that you came to this website looking for information on how to implement Continuous Integration (CI) and Continuous Delivery (CD) pipelines for PHP projects with Jenkins. Back in 2010, I created an Open Source template for Jenkins jobs for PHP projects and this website used to be the home of that project. I have neither used Jenkins nor updated the aforementioned template in qui
5分で出来たjenkins導入ですが、PHPのプロジェクトが動かずひたすらはまりました Template for Jenkins Jobs for PHP Projectsを参考にしつつ足りていない情報があるので補完します PHPのバージョン PHP.5.2.x以上を求められるのでPHP5.3.xを入れちゃうほうが楽です(テスト環境が本番環境とバージョンが違っていいのかという問題はさておき) PHP5.3のインストール方法⇒開発環境を構築する時用のメモ Apache・PHP・MySQL | のぶろぐ 必要なpearモジュールのインストール ~~~ pear channel-discover pear.pdepend.org pear channel-discover pear.phpmd.org pear channel-discover pear.phpunit.de pear chan
はじめに この資料は「PHPでTDD&CIワークショップ」 http://atnd.org/events/16626 で @yamashiro が発表するための資料だよ。 ワークショップ参加者じゃなくても記事読むだけで完結するようには書いてあるよ。 概要としては、Jenkins を使って PHP のウンコレガシーなコードをいかに綺麗にして行くかということを説明する。 自画自賛だけど PHPMD とか PHPCPD の使い方の説明の資料としてもそこそこイケてる資料になってると思いました。まる。 この記事に書かれてることは、割とTemplate for Jenkins Jobs for PHP Projectsとかぶってるけど、プラグインを絞ってあるのと、一個一個のプラグインについて解説、また実際にエラーが起きたときにどうすればいいのか書くよ。 Java と Jenkins のインストールとJ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く