Ikk*_*kke 2 php unit-testing encapsulation
我正在尝试进行单元测试,但有一件事困扰着我.
我有一个php类,我想进行单元测试.它需要一些参数,然后吐出HTML.问题是主要功能是计算一些值和条件,这些我想测试.但我把它放在一个私有方法中,因为通常情况下,没有人需要知道这个方法.但是这样我就无法对该类进行单元测试,因为我无法测试该方法的结果.
我找到了关于这个主题的这篇文章.本文的结论是使用反射来测试私有方法.
你如何反对这个话题?
Tor*_*mod 11
你应该在自己的类中拥有逻辑,然后对该类进行单元测试,这样你就不必通过html来测试逻辑.
通常:
你永远不应该测试私有方法.存在私有方法以使公共方法通过其测试.
如果您可以在不破坏公共方法的情况下删除私有方法,则不需要私有方法并可以删除它们.
如果在不破坏公共方法的情况下无法删除私有方法,则正在测试私有方法.
如果你遵循TDD的做法,就很难进入这种情况,因为编写每行代码都是为了让单元测试通过.你班上应该没有"流浪"代码.