Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

はじめに PHPのモックフレームワークであるMockeryを使ったテストコードとサンプルケースで、モックとスタブの違いを自分なりに噛み砕いて説明してみます。 対象読者はMockery使ったことあるけどいまいちモックとスタブの違いがわからない人です。 モックとは テスト対象が依存している他のクラスのメソッドを、テスト対象が期待通り呼び出しているか検査するためのもの。 似てるけど違う、スタブとは テスト対象が依存している他のクラスの挙動に影響を受けないように、事前に定められた応答をするもの。 モックと違うところは、検査したい観点が違う。モックはテスト対象が依存クラスを使って期待したメッセージングをしているか確認する。 わからん コードで説明してみる Aさんは「2つの整数を足し算して答えが3の倍数ならアホになる」振る舞いをする人だと仮定します。 Aさんは「計算できる何か」が無いと足し算できません
そこにペチパー(PHPer)が100人いたら97人はPHPUnitでテストを書く。 と言われている位(適当です)、PHPでは珍しくデファクトとなっているPHPUnit。 なにそうなのか!?と、いざ導入しようとしてwget https://phar.phpunit.de/phpunit.pharから入れたらPHPのバージョンが合っていなくて挫けそうになった経験。あると思います。 何故なら、PHPUnitの最新バージョンはPHP5.6PHP 7以上を求めているからです。 ※ 上記のwget 〜 では最新のPHPUnitが取得されます そして恐らく、みんながみんなPHPのバージョンは最新では無いはずです。 (一番マシなのが5.5系でヘタすれば未だに5.3系なんてとこも??5.2系使っていたら頭おかしい) え、じゃあ僕は5.5系使っているんだけど、どうしたらいいの?私は5.4系よ、どうしたらいいの
Jenkins、いいですよね。オペレーションの自動化には美があります。前回の記事ではGitによるデプロイ自動化を行いましたが、その時点で既にユニットテストの自動化は想定していたので、今回はそれを実現してみます。 これによって、機能を実装してプッシュする度に自動でデプロイされ、その過程でテストが自動で行われるので、特に通知がなければ動作が保証されるようになります。実際に本番環境への適用の際には、もう少ししっかりテストをする必要があるのかもしれませんが、開発環境レベルではテストを意識的に実施せずとも気兼ねなく開発を進めることができます。 ユニットテストにはおなじみのPHPUnitを使います。なお、前回のJenkins導入やデプロイ自動化の話はこちらの記事でまとめてありますのでよろしければどうぞ。 ユニットテストとテスト自動化 従来、プログラムのテストはミスの許されない商用プロダクトでは欠かせな
皆さん, ユニットテスト書いてますか. TDD (テスト駆動開発) によるプログラミングは本当に楽しいものですが, コマンドをいちいち手動で実行するのは面倒ですよね. テストを自動化しているんだから, その実行も自動化したいですよね. この記事では, 私が仕事や趣味で使っている PHPUnit を例に, テストの実行の自動化について紹介します. PHPUnit の, としてはいますが, 他の言語で使えるテクニックもあります. なお, ここでの自動化は開発しながらの自動実行のことで, CI (継続的インテグレーション) の話は出てきません. その前に... 私の開発時のターミナルは以下のようになっています. [caption id="attachment_1298" align="alignnone" width="300" caption="開発時のターミナル"][/caption] GN
仕事でPHPUnitを使うようになって1年くらいが経ち、チーム内にテスト書く文化が定着してきました。 テストの質と量が向上して、有効性も高まってきていい感じだなーと思う反面 「時間かかり過ぎ 」 という、面倒くさい問題が浮上してきました><。 現状のテスト実行ログ % ./vendor/bin/phpunit PHPUnit 3.7.28 by Sebastian Bergmann. ............................................................... 63 / 612 ( 10%) ............................................................... 126 / 612 ( 20%) .............................................
最近、みんなに「テストを書こう」「クオリティを上げよう」と言いまくっています。 その手前、「自分もちゃんと整備しないと説得力がないな」ということで、少し整備しました。テストの実行をプログラムの変更をコミットする時にしていましたが、常にテストが走っているような状態を作ろうと思いました。 PHPUnitのインストール 今回やったのはこちらではありませんが、一応メモしておきます。 sudo pear install phpunit/phpunit 設定はxmlファイルに書きます。 sudo vim ~/Project/phpunit.xml 以下のような感じ。 . Tests これでTestsディレクトリから、テストケースを全て探索して、テストを実行できます。 phpunit 実行はxmlファイルの存在するディレクトリからphpunitを実行するだけ。 watchrでファイルの変更時にphpun
PHPUnit 6.5 は PHP 7 以降のバージョンで動作しますが、最新版の PHP を使うことを強く推奨します。 PHPUnit を使うには、拡張モジュール dom、json、 が必要です。これらは通常、デフォルトで有効になっています。 PHPUnit また、拡張モジュール pcre、 reflection、 そして spl も必要です。これらは標準の拡張モジュールとしてデフォルトで有効になっており、 PHP のビルドシステムやソースファイルに手を加えない限り、 無効にすることはできません。 コードカバレッジをサポートするには Xdebug 2.5.0 以降と tokenizer 拡張モジュールが必要です。 XML 形式で情報を出力するには、xmlwriter 拡張モジュールも必要です。 PHPUnit を入手する一番簡単な方法は、PHP Archive (PHAR) をダウンロード
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く