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

我解决这个问题的语法:

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

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

如果您不熟悉 CakePHP框架, ,你也许仍然可以帮助我,因为它使用 简单测试

编辑:将问题改写为更普遍

有帮助吗?

解决方案

我对 CakePHP 不太熟悉,但这种事情似乎在任何有固定装置的地方都会发生。

至少在 Rails 中没有内置的方法可以实现这种情况,我想在 cakePHP 或其他任何地方都不会,因为固定装置的整个想法是,它是 固定的

我知道有两种“不错”的解决方法

  • 写一个 changefixture 方法,并在执行断言/等之前,使用要更改的参数运行它。它应该去更新数据库或做任何需要做的事情。

  • 根本不使用固定装置,并且每次都使用某种对象工厂或对象生成器来创建对象

其他提示

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

我没有使用多个装置或更改装置,而是通过删除我想要测试的字段来编辑 Model::_schema 数组。这会导致模型表现得好像字段不存在一样,但我不确定这是否是 100% 测试。我不认为它适用于所有情况,但它适用于我的例子。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top