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

如何在phpunit/cakephp中处理枚举字段?,php,unit-testing,cakephp,phpunit,simpletest,Php,Unit Testing,Cakephp,Phpunit,Simpletest,背景: 我正在尝试对cakephp应用程序进行单元测试。该应用程序是在没有进行单元测试的情况下构建的。我想添加单元测试,以便将来的开发可以结构化 该应用程序使用了许多枚举列,由于cakephp不支持枚举列,我无法继续为现有代码编写单元测试。我看到一些人建议将enum转换为tinyint或varchar。如果枚举字段只包含两个选项(例如启用/禁用、真/假、活动/非活动),我会尝试该解决方案,因为它不需要更改代码,但对于具有更多值的枚举字段,这不是一个简单的解决方案 问题: 有没有一种更简单的方法可

背景:

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

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

问题:


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

如果你在谷歌上搜索,你会发现几种不同的、运作良好的方法。 我个人喜欢使用类常量和静态方法来轻松访问它们(包括i18n):

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

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

谢谢您的回答-顺便说一句,我在问问题之前在谷歌上搜索过了。。。我正在探索第一个解决方案-非常感谢。