CategoryModel
部分的に次のように定義されたクラスがあります
class CategoryModel {
private $id, $categoryText;
public function createWithParams($id, $categoryText) {
$instance = new self();
$instance->id = $id;
$instance->categoryText = array();
if ($categoryText != null)
$this->categoryText[] = $categoryText;
return $instance;
}
.... further model code
}
phpunit テストでこの関数を呼び出すと、出力が得られます
Exception: Unknown property 'categoryText' for class 'QuestionDaoTest'
ラインを中心に
$this->categoryText[] = $categoryText();
配列値の割り当てコードを次のように変更しました
if ($categoryText != null)
$this->categoryText = array($categoryText);
else
$this->categoryText = array();
しかし、これによりin_array
、setter メソッドで配列に対してキー チェックを実行すると、null エラーが発生します。
public function addCategoryText($categoryText) {
if (!in_array($categoryText, $this->categoryText)) {
$this->categoryText[] = $categoryText;
return true;
}
return false;
}
これらのエラーの原因と解決方法を教えてください。
編集問題は解決しました。
$this->categoryText[] = $categoryText;
に等しくない
$instance->categoryText[] = $categoryText;
インスタンス化されたクラス オブジェクトを参照していないため、null アクセスの問題が発生します。