【问题标题】:How to handl enum fields in phpunit / cakephp?如何处理 phpunit / cakephp 中的枚举字段?
【发布时间】:2013-06-09 14:00:26
【问题描述】:

背景:

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

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

问题:

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

【问题讨论】:

    标签: php unit-testing cakephp phpunit simpletest


    【解决方案1】:

    如果您使用 Google 搜索,您会发现几种不同且运行良好的方法。 我个人倾向于使用类常量和静态方法来轻松访问它们(包括 i18n):http://www.dereuromark.de/2010/06/24/static-enums-or-semihardcoded-attributes/

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

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

    【讨论】:

    • 感谢您的回复 - 顺便说一句,在提出问题之前我确实在谷歌上搜索过......我正在探索第一个解决方案 - 非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 2018-11-04
    相关资源
    最近更新 更多