1
我有很多使用固定装置的测试,这对于测试诸如“我是否从此方法获得正确数量的记录”以及类似的测试非常有用。CakePHP测试 - 实时导入记录
class CountryFixture extends CakeTestFixture {
public $import = array(
'model' => 'Country',
'records' => false
);
public $records = array(
array('id' => '1','name' => 'Sweden', 'region_id' => '1'),
array('id' => '2','name' => 'Norway', 'region_id' => '1')
}
}
现在我想我想测试数据本身。例如,我想确保没有哪个国家出于某种原因失去了地区。然后我做一个新的夹具导入所有记录。
class CountryLiveFixture extends CakeTestFixture {
public $import = array(
'model' => 'Country',
'records' => true
);
}
这可以正常工作。但似乎没有必要创建第二个灯具。有什么方法可以在测试中随时设置导入记录吗?
嗯,是的,但我没有测试框架,我正在测试数据。我的第一个例子的意思是,使用固定装置进行的测试对于getCustomersThatFullFillRequirement等测试方法很有用,您可以简单地看到记录的数量是正确的,而这是动态记录无法做到的。 事情是,我们有一个错误,源于一些国家没有region_id(在这个比喻)。所以我们认为,为什么不编写一个测试来查看数据,以确定我们不会再次遇到同样的错误。你看到我想要完成什么吗? –
如果你的函数只有查询,你不需要真的测试它。你应该多关注你的查询吧?如果您在查询中添加了WHERE region_id IS NOT NULL,则除了灯具数据更改之外,您总能得到正确的结果。 –
问题不在于自我测试。就像我说的那样,测试就像现在一样。问题是我需要有两个灯具。一个带有静态数据,即,我手动设置了几个帖子,另一个带有动态数据,即,我从数据库中导入所有记录。我的问题是,有没有什么方法可以只使用一个Fixture,并将一些测试的固定数据和其他测试的导入记录使用。 –