2

我有一个外壳,它可以发送电子邮件来更新一个人的帐户状态。为了编制今天需要接收这封电子邮件的人员列表,我有一个方法可以执行适当的find('all')查询并返回收件人列表。我想对该方法进行单元测试,以确保正确生成此列表。

但是,现在我有两个单元测试,具体取决于我的 Person 夹具 - 我的 Person 模型的测试和这个 shell 测试。来自 Person 模型测试的额外混乱使得准备一个专注于我的 shell 测试的数据集变得很尴尬。测试已经完成——如果我改变一个的数据集,我可能会破坏另一个。

我可以根据上下文轻松为同一个夹具定义单独的数据集吗?我可以为单独的测试创建单独的夹具吗?如何?

4

1 回答 1

2

您可以创建任意数量的灯具。您可以使用以下声明选择您的 TestCase 加载哪些夹具public $fixtures = array('app.Fixture1', 'app.Ficture2', etc...);

您可以从默认数据库连接中导入表信息,以便为同一模型(即 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

希望这可以帮助。

于 2012-10-16T02:09:18.463 回答