在Flex,Actionscript中调用私有方法

1 apache-flex reflection actionscript flexunit

我需要在FlexUnit中测试私有方法.有没有可能通过使用describeType通过反射来做到这一点,或者flexUnit可能在设施中有一些构建?我不喜欢人为限制,我无法测试私有功能,它大大降低了灵活性.是的,我测试私有函数是一个很好的设计,所以请不要建议我重构我的代码.我不想为了单元测试而打破封装.

Jam*_*Hay 6

我99%肯定这是不可能的,我很想知道你为什么要这样做.

无论在类中发生什么,您都应该根据给定的输入对给定类的输出进行单元测试.您真的希望允许某人能够更改实现细节,只要它不会更改预期输出(由单元测试定义).

如果您测试私有方法,则对类的任何更改都将与单元测试紧密耦合.如果有人想重新调整代码以提高可读性,或者进行一些更新以提高性能,那么即使类仍然按照最初的设计运行,它们也必须更新单元测试.

我确信有一些边缘情况,测试私有方法可能是有益的,但我希望在大多数情况下它只是不需要.您无需打破封装,只需测试您的方法调用是否提供正确的输出......无论代码在内部执行什么操作.