如何在phpunit / cakephp中处理枚举字段



背景:

我正在尝试对蛋糕应用程序进行单元测试。该应用是在没有单元测试的情况下构建的。我想添加单元测试,以便可以构建未来的开发。

该应用程序使用了许多枚举列,由于 cakephp 不支持枚举列,我无法继续为现有代码编写单元测试。我看到有些人建议将枚举转换为tinyint或varchar。如果枚举字段仅包含两个选项(例如启用/禁用、真/假、活动/非活动(,我会尝试该解决方案,因为它不需要更改代码,但对于具有更多值的枚举字段,这不是一个简单的解决方案。

问题:

有没有更简单的方法可以让我以最少的更改为预构建的应用程序编写单元测试?

如果你用谷歌搜索,你会发现几种不同的 - 并且工作得很好 - 方法。我个人更喜欢类常量和静态方法来轻松访问它们(包括 i18n(: http://www.dereuromark.de/2010/06/24/static-enums-or-semihardcoded-attributes/

但您也可以使用 EnumBehaviors 或 ArrayDatasources 等。如果你谷歌搜索它,还有很多其他的解决方案。

对我来说重要的是,第一个解决方案允许您使用自定义烘焙模板并烘焙已经准备好枚举的代码,其中包含所有枚举下拉列表。而且,它非常快,因为它不需要任何数据库查找即可将 int 值形成用户友好且可能翻译的字符串值。您还可以使用子集枚举(一些而不是所有可用的枚举(并根据需要对它们重新排序。

最新更新