我有一个shell,可以发送电子邮件来更新某个人的帐户状态。为了编译今天需要接收此电子邮件的人员列表,我有一个方法可以执行相应的find('all')
查询并返回收件人列表。我想对此方法进行单元测试,以确保正确生成此列表。
然而,现在我有两个单元测试,取决于我的Person夹具 - 我的Person模型的测试,以及这个shell测试。来自Person模型测试的额外混乱使得准备一个专注于我的shell测试的数据集变得尴尬。测试被计算 - 如果我将数据集更改为1,我可能会破坏另一个。
我可以根据上下文轻松地为同一个灯具定义单独的数据集吗?我可以为单独的测试创建单独的灯具吗?怎么样?
答案 0 :(得分:2)
您可以根据需要创建任意数量的灯具。您可以使用以下声明public $fixtures = array('app.Fixture1', 'app.Ficture2', etc...);
选择TestCase加载的灯具。
您可以从默认数据库连接导入表信息,以便轻松为同一模型创建多个灯具(即PersonFixture1,PersonFixture2)。 http://book.cakephp.org/2.0/en/development/testing.html#importing-table-information-and-records
此外,您可以覆盖灯具的init方法以动态加载记录数据(即更改时间戳)。
http://book.cakephp.org/2.0/en/development/testing.html#dynamic-data-and-fixtures
希望这有帮助。