【发布时间】:2016-06-20 15:45:06
【问题描述】:
我为WorkType 类声明了workAbroads 关系,为WorkAbroad 类声明了workType 关系:
class WorkType extends \yii\db\ActiveRecord
{
...
public function getWorkAbroads()
{
return $this->hasMany(WorkAbroad::className(), ['WorkTypeID' => 'ID']);
}
}
class WorkAbroad extends \yii\db\ActiveRecord
{
...
public function getWorkType()
{
return $this->hasOne(WorkType::className(), ['ID' => 'WorkTypeID']);
}
}
我想测试关系的比率。怎么做才合适?
假设我创建了一个$workType 对象和一百个$workAbroads 对象。
我希望以下表达式将返回 $workAboards 对象的数组:
$workAboards = $workType->getWorkAbroads(); // The SQL query is always executed
// $workAboards = $workType->workAbroads; // The SQL query will be executed once
那么下面的检查就成功了:
assertEquals(100, count($workAbroads));
相反,我收到以下错误:
Failed asserting that 1 matches expected 100
我知道我可以通过查询所有符合以下条件的 ActiveRecord 对象WorkAbroad 来测试关系:
'WorkTypeID' => $workType->ID
但我想了解为什么第一种方法不起作用?
【问题讨论】:
标签: php unit-testing activerecord yii2