refirio.org
気ままな雑記帳&実験場。好き勝手に色々やっています。
エントリー
タグ「ユニットテスト」の検索結果は以下のとおりです。
Windows + コマンドプロンプト + PHPUnit でユニットテスト
今更ながらPHPUnitを試したのでメモ。
概要
PHPUnit3で始めるユニットテストが解りやすかったが情報が古い。でも、概要をつかむには良さそうです。
大まかな内容としては「◯◯の命令を△△の形式で呼び出して、□□の結果が返ってくればOK」というコードをたくさん書いたプログラムを準備しておき、それを実行すれば各命令が正しく実行されたかを知ることができるというもの。(プログラム作成中に不具合を作ってしまっても、即座に検知できる…かもしれない。)
大人数で各々が大量の部品を作るような開発では、上手く導入するととても活躍してくれそう。一人/少人数で作成しているようなプログラムでは、使いどころが難しいかも。(自分が解っていないだけかも。)
導入自体は簡単。
導入
自分の環境に合わせて「Windows+コマンドプロンプト+PHPUnit」でPHPプログラムのテストをしてみたので、手順をメモ。PHPUnit のインストールを主に参考にしています。
まずは公式サイトから phpunit.phar
の安定版を入手する。
任意のディレクトリ内(C:\xxx\phpunit
とする)に、入手した phpunit.phar
を配置する。
C:\xxx\phpunit
内に phpunit.cmd
を作成し、以下の内容を記述する。(PHPへのパスは環境に合わせて設定する。)
@C:\xampp\php\php.exe "%~dp0phpunit.phar" %*
コマンドプロンプトで C:\xxx\phpunit
内に移動し、以下のコマンドを実行。以下のようにバージョン情報が表示されれば成功。
C:\xxx\phpunit>phpunit --version
PHPUnit 4.5.0 by Sebastian Bergmann and contributors.
サンプルで動作確認
Getting Started with PHPUnit を参考にテスト。
上ページの内容を参考に C:\xxx\phpunit\src\Money.php
(テストしたいクラス)を作成。次に C:\xxx\phpunit\tests\MoneyTest.php
(テスト用プログラム)も作成。
コマンドプロンプトから、以下のようにコマンドを実行するとテストできる。
C:\xxx\phpunit>phpunit --bootstrap src/Money.php tests/MoneyTest
PHPUnit 4.5.0 by Sebastian Bergmann and contributors.
.
Time: 31 ms, Memory: 4.00Mb
OK (1 test, 1 assertion)
上のように表示されればテスト成功。
自作のプログラムで動作確認
PHPUnit 用のテストの書き方 を参考にテスト。
まずは C:\xxx\phpunit\src\calculate.php
を作成し、掛け算と割り算の計算結果を返す命令を定義。これらの命令が正しく動作しているかテストするものとする。
<?php
function multiplication($x, $y) {
return $x * $y;
}
function division($x, $y) {
return $x / $y;
}
C:\xxx\phpunit\tests\calculate.php
を作成し、各命令をテストするコードを書く。(計算結果が正しく返ってくればテスト成功とする。)
<?php
require_once 'C:/localhost/home/test/public_html/phpunit/src/calculate.php';
class Calculate extends PHPUnit_Framework_TestCase
{
public function testCalculate()
{
$this->assertEquals(8, multiplication(4, 2));
$this->assertEquals(2, division(4, 2));
}
}
コマンドプロンプトからテスト実行。
C:\xxx\phpunit>phpunit tests/calculate
PHPUnit 4.5.0 by Sebastian Bergmann and contributors.
.
Time: 30 ms, Memory: 4.00Mb
OK (1 test, 2 assertions)
上のように表示されればテスト成功。試しに関数の内容を間違ったものにしてテストすると。
FAILURES!
Tests: 1, Assertions: 2, Failures: 1.
のような結果が表示されるので、正しくテストできていることが確認できる。
ページ移動
- 前のページ
- 次のページ
- ページ
- 1
ユーティリティ
カテゴリー
タグクラウド
- 33分探偵1
- AMBITIOUS JAPAN!1
- ARIA2
- Air2
- Android2
- BLACK CAT2
- C#1
- Chrome2
- FINAL FANTASY2
- Flash2
- GAE1
- JavaScript18
- Kindle1
- Mac2
- MySQL7
- PHP68
- PayPal1
- Perl3
- PostgreSQL2
- Python1
- Ruby1
- SQLite6
- Switch1
- TinyMCE4
- Windows Media Player1
- bot1
- fragile1
- freo53
- iPhone3
- iTunes1
- levis1
- mod_rewrite2
- node.js1
- sola1
- true tears1
- いつかのメリークリスマス1
- いつか帰るところ1
- けいおん!1
- ここにしか咲かない花3
- とある魔術の禁書目録1
- とらドラ!2
- ひぐらしのなく頃に2
- みなみけ1
- イラスト4
- ガンダム003
- クロノトリガー1
- ザナルカンドにて4
- テラ1
- ニコニコ動画8
- ハゲタカ2
- ピアノ36
- マクロスF3
- ユニットテスト1
- ルパン三世1
- ローズ・オブ・メイ4
- 初音ミク1
- 半分の月がのぼる空1
- 名探偵コナン1
- 戦場のメリークリスマス5
- 携帯10
- 攻殻機動隊1
- 桜2
- 機工魔術士1
- 決行~姫をさがして~1
- 涼宮ハルヒの憂鬱10
- 深愛2
- 灼眼のシャナ4
- 聖剣伝説2
- 蕾3
- 蟲師2
- 返信2
- 野球1
- 鋼の錬金術師1