今、私はPHPUnitで遊んでいます。私はそのドキュメントを読みましたが、それをよく理解することができません。私の場合を説明させてください。
3つのパラメーターを受け取るクラスの関数があります1 array, 2 some string, 3 a class object
。この関数は、2番目のパラメーターを配列のインデックスとして配置し、結果をそのインデックスのオブジェクトとして配置することにより、配列を返します。私の機能は以下の通りです
public function construct($testArray, $test,$analysisResult) {
$postedTest = explode('_', $test);
$testName = end($postedTest);
$postedTest = implode("_", array_slice($postedTest, 0, -1));
if (in_array($postedTest, array_keys($testArray))) {
$testArray[$postedTest][$testName] = $analysisResult;
} else {
$testArray[$postedTest] = array($testName => $analysisResult);
}
return $testArray;
}
この関数を次のように呼び出すと
$constructObj = new Application_Model_ConstructTree();
$test=$this->getMockForAbstractClass('Abstract_Result');
$test->level = "Error";
$test->infoText = "Not Immplemented";
$testArray = Array('databaseschema' => Array('Database' => $test));
$result = $constructObj->construct($testArray,"Database",$test);
関数は次のような配列を返します
Array
(
[databaseschema] => Array
(
[Database] => AnalysisResult Object
(
[isRepairable] => 1
[level] => Error
[infoText] => Not Implemented
)
)
)
次に、PHPUnitテストを作成して、のようなオブジェクトの属性がisRepairable, level and infoText
存在し、空ではないことを確認します。私はそれを考えてassertNotEmpty
、assertAttributeEmpty
何かをすることができますが、それを行う方法を理解することができません。
私のテストは次のようになります
public function testcontruct() {
$constructObj = new Application_Model_ConstructTree();
$test=$this->getMockForAbstractClass('Abstract_Result');
$test->level = "Error";
$test->infoText = "Not Immplemented";
$testArray = Array('databaseschema' => Array('Database' => $test));
$result = $constructObj->construct($testArray,"Database",$test);
$this->assertNotCount(0, $result);
$this->assertNotContains('databaseschema', $result);
}
誰でもガイドしてください:-)