【问题标题】:Using separate data sets for the same fixture对同一个夹具使用不同的数据集
【发布时间】:2012-10-15 22:04:54
【问题描述】:

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

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

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

【问题讨论】:

    标签: cakephp fixtures


    【解决方案1】:

    您可以创建任意数量的灯具。您可以使用以下声明 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

    希望这会有所帮助。

    【讨论】:

    • 此外,如果您使用静态定义的表结构而不是导入(像我一样),您可以通过将 $name property 设置为适当的值来完成此操作(在我的情况下为“Person”) .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 2015-07-30
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多