可以在CakePHP的测试方法之间动态更改灯具吗?

时间:2020-03-05 18:45:55  来源:igfitidea点击:

在测试方法之间是否可以更换夹具?如果是这样,我该怎么做?

我对这个问题的语法:

在cakephp框架中,我正在为通过将字段添加到表中而配置的行为构建测试。旨在以与添加"已创建"相同的方式工作
和"已修改"字段将在保存时自动填充这些字段。

为了测试这一点,我可以创建数十个夹具/模型组合来测试不同的设置,但是只需要在测试方法之间改变夹具的形状,就会更好,更快,更容易一百倍。

If you are not familiar with the CakePHP framework, you can maybe still help me as it uses SimpleTest

编辑:措辞更笼统的问题

解决方案

回答

我对CakePHP并不特别熟悉,但是这种情况似乎在任何带有固定装置的地方都会发生。

至少在Rails中没有内置的方式可以做到这一点,而且我想在CakePHP或者其他任何地方都不会,因为固定装置的整体思想是固定的

我知道有2种"不错的"解决方法

  • 编写一个" changefixture"方法,然后在执行asserts / etc之前,使用要更改的参数运行它。它应该去更新数据库或者需要完成的任何事情。
  • 完全不使用固定装置,而是每次使用某种对象工厂或者对象生成器来创建对象

回答

这不是我的问题的答案,而是我的问题示例的解决方案。

我不使用多个灯具或者更改灯具,而是通过删除要测试的字段来编辑Model :: _ schema数组。这样的效果是,该模型的行为就像没有出现在字段中一样,但是我不确定这是否是100%的测试。我认为这并非适用于所有情况,但适用于我的示例。