PHPUnit に assertAttributeSame というメソッドがありましたが、これの使い方を示す日本語ドキュメントがなかったため投稿しておきます。
assertAttributeSame は引数に指定したオブジェクトの、指定したプロパティが期待した値であるかどうかを検証するメソッドです。具体的なコードのほうがわかりやすいと思いますので、実際に下記にコードを示します。
まず下記はテスト対象の Japan クラスです。プロパティとして $capital を持っています。setCapital メソッドが実行されると、その $capital に Tokyo という文字列が格納されます。
1 2 3 4 5 6 7 8 9 |
<?php class Japan{ public $capital; public function setCapital(){ $this->capital = 'Tokyo'; } } |
そして下記は Japan クラスをテストするテストコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php require_once 'Japan.php'; class JapanTest extends PHPUnit_Framework_TestCase{ public function testCapitalIsValid(){ $japan = new Japan(); $this->assertAttributeSame(null, 'capital', $japan); $japan->setCapital(); $this->assertAttributeSame('Tokyo', 'capital', $japan); } } |
テストコードの中では assertAttributeSame メソッドが 2 回使われています。1 回目の実行では、new した直後の $capital をテストしています。new した直後には何も代入されていませんので、null が入っていることを確かめています。
そして 2 回目の実行では、直前に setCapital メソッドが実行されていますので、 $capital には Tokyo という文字列が入っていなければなりません。なので、Tokyo という文字列が入っていることを確かめています。