可以在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%的测试。我认为这并非适用于所有情况,但适用于我的示例。