この記事は TDD Advent Calendar jp: 2011 の 14 日目です. 前日: TDD戦略 -TDDを導入し進化させる方法- #TDDAdventJP (@kyon_mm さん) 翌日: TDDに対して思っていること (@gab_km さん) この記事の概要 TDD で開発することで設計上の問題点に気づきやすくなる Singleton はグローバル変数である Singleton の使用はできる限り避けるべきである テスタビリティを意識しよう TDD では, 原則としてユニットテストを書いてから実際のコードを実装します. なので, 自然と「テストのしやすさ (テスタビリティ)」を意識して実装することになります. そして, TDD においては一般的に, テスタビリティを意識することで, 設計が改善されるとされています. オブジェクト指向には難しい概念がたくさん登場します.
新年あけましておめでとうございます。今年もボチボチやっていきます。 本稿ではPHP製のWebスクレイピングライブラリGoutteを紹介します。 Goutte(グット)とは Goutteは必要十分な機能を持ったWebスクレイピングライブラリです。そもそもWebスクレイピングというのは、外部Webページから必要なデータを取ってくるくらいの意味です。つまり、GoutteはWebスクレイピングを簡単に行う道具だと考えればいいでしょう。 具体的には、GoutteはWebクローラとHTMLパーサを組み合わせたようなものです。Cookieやフォームの扱いなどWebブラウザとしての機能は一通り揃っていますし、CSS風の要素指定もできるなど、機能面では他のライブラリと遜色ないように感じます。 さらに僕個人がGoutteに期待している点は、安定性とロングサポートです。Goutteは主要機能をSymfony2お
皆さん, ユニットテスト書いてますか. TDD (テスト駆動開発) によるプログラミングは本当に楽しいものですが, コマンドをいちいち手動で実行するのは面倒ですよね. テストを自動化しているんだから, その実行も自動化したいですよね. この記事では, 私が仕事や趣味で使っている PHPUnit を例に, テストの実行の自動化について紹介します. PHPUnit の, としてはいますが, 他の言語で使えるテクニックもあります. なお, ここでの自動化は開発しながらの自動実行のことで, CI (継続的インテグレーション) の話は出てきません. その前に... 私の開発時のターミナルは以下のようになっています. [caption id="attachment_1298" align="alignnone" width="300" caption="開発時のターミナル"][/caption] GN
Vim-users.jpのRSpecをquickrunする記事を参考に、PHPUnit用に書き換えてみる。 .vimrc PHPやPHPUnit、quickrun.vimは既にインストール・セッティング済みの前提。こんな感じで.vimrcに記述してみた。 augroup QuickRunPHPUnit autocmd! autocmd BufWinEnter,BufNewFile *test.php set filetype=php.unit augroup END " 初期化 let g:quickrun_config = {} " PHPUnit let g:quickrun_config['php.unit'] = {'command': 'phpunit'} これでHogeClassTest.phpやfuga_test.phpなど、ファイル名末尾が*test.phpなファイルを開く
PHPでテストケースを作成する場合、ネイティブ関数を使っているようなコードに対してテストを実行しようとすると、どうしても環境に依存したり、実リソースにアクセスする必要が出てしまうことがあります。 この記事では、そのような問題に対する対処法を提示します。 経緯みたいなもの 先日もWeb APIをコールするPHPライブラリを書いていたのですが、HTTPをたたく部分のテストを切り離せず、もやもやしていました。 ちょっと前にPerlのTest::Timeというライブラリを教わって感動していたのですが、PHPでもネイティブ関数をオーバーライドできたらどんなにすばらしいだろう、などとぼやいていたのです。 そんなときに、@takimoにPHP 5.3ならオーバーライドできるよねって言われて、ハッと思い立ってテストに組み込む方法を考えてみたところ、割とスマートに実現できそうな方法が見つかったので、方法論の
11/07/07 PHPだけでコードやテストを保存したら自動でテストを実行しGrowlへ通知する環境 はじめに言っておきますが、これはリスペクトです。 コードやテストを保存したら自動でPHPUnitを実行しGrowlへ通知する環境 | Act as Professional - プロとしての行為 パクリではありません。 パクリではありません。 大事なことなので2回言いました。 上記 HIROCAST さんのブログを昨日拝見し、これはあのツールのブログを書く時が来たと思いました。 そのツールとは Stagehand_TestRunner - テスト駆動開発のためのテストランナー - Piece Framework です。 Stagehand_TestRunner は、PHP テスティングフレームワークの実行を強力にサポートするツールです。対応フレームワークは、PHPUnit
PHPのテストライブラリとしては一番有名どころのPHPUnitと実際のブラウザをJavaScriptを使って画面遷移をテストすることができるSelenium RCを使って実際に結合テストを行ってみたので今回紹介したいと思います。 PHPUnit PHPUnitはPHPの一番有名なテストライブラリです。テストケースを用意することで仕様変更にも強いアプリケーション開発が可能になります。 さまざまなことができるPHPUnitですが、PHPUnitだけでは画面遷移のような機能テストは難しいものです。 なぜなら、PHPだけで画面遷移を確認するためにはブラウザの動きをシミュレーションしたライブラリを使ったりしてテストする方法になってしまうからです。 たとえばsymfony1系ではsfTestBrowserというライブラリが用意されていてこのライブラリを利用することでテストが行えるようになっていますが、
(Last Updated On: 2018年8月14日)昨年のPHPカンファレンスで紹介したPORVE for PHP 開発版の公開を始めました。PROVE for PHPはこんなテストが出来ます。 PHPをアップデートしてアプリに影響が無い事を検証する PHPアプリをアップデートしても以前と同じように動作する事を検証する 使い方もとても簡単です。 テストケースの作成はブラウザからアプリを利用するだけ ロードバランサを用いて実運用サーバからのテストケースも作成可能 テストの実行はプログラムを実行するだけ 違いが在った場所はプログラムの何処か確実&簡単に判明 http://www.provephp.com/ 現状 CUIとコマンドツールでの管理のみ GUI(Web、GTK)は順次整備予定 PROVEを利用すればPHPのセキュリティパッチがリリースされた場合に、アプリケーションの動作チェック
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く