测试方法之间是否可以更改夹具?如果是这样,我该怎么做?
我对这个问题的语法:
在 cakephp 框架中,我正在为通过向表中添加字段来配置的行为构建测试。这与添加“created”和“modified”字段将在保存时自动填充这些字段的方式相同。
为了测试这一点,我可以创建数十个夹具/模型组合来测试不同的设置,但是让夹具在测试方法之间改变“形状”会更好、更快、更容易一百倍。
如果您不熟悉CakePHP 框架,您可能仍然可以帮助我,因为它使用SimpleTest
编辑:改写的问题更笼统
测试方法之间是否可以更改夹具?如果是这样,我该怎么做?
我对这个问题的语法:
在 cakephp 框架中,我正在为通过向表中添加字段来配置的行为构建测试。这与添加“created”和“modified”字段将在保存时自动填充这些字段的方式相同。
为了测试这一点,我可以创建数十个夹具/模型组合来测试不同的设置,但是让夹具在测试方法之间改变“形状”会更好、更快、更容易一百倍。
如果您不熟悉CakePHP 框架,您可能仍然可以帮助我,因为它使用SimpleTest
编辑:改写的问题更笼统
我对 CakePHP 并不特别熟悉,但这种事情似乎在任何有固定装置的地方都会发生。
至少在rails中没有内置的方式来实现这一点,我想在cakePHP或其他任何地方都没有,因为夹具的整个想法是它是固定的
我知道有两种“体面”的解决方法
编写一个changefixture
方法,然后在您执行断言/等之前,使用要更改的参数运行它。它应该去更新数据库或任何需要做的事情。
根本不要使用固定装置,每次都使用某种对象工厂或对象生成器来创建你的对象
这不是我的问题的答案,而是我的问题示例的解决方案。
我没有使用多个夹具或更改夹具,而是通过删除我想要测试的字段来编辑 Model::_schema 数组。这会导致模型表现得好像字段不存在一样,但我不确定这是否是 100% 测试。我不认为它适用于所有情况,但它适用于我的示例。