Tim*_*Tim 4 oop matlab unit-testing private
我目前正在为一个用面向对象的 Matlab 编写的项目实施单元测试。
从设计来看,我无法从测试类中的测试方法访问类的私有方法是有道理的。
是否有任何解决方法可以直接测试这些方法而不将它们公开?
如果您需要直接测试它们,最简单的方法是将它们公开。
另一种方法是让它们受保护,然后有一个带有一堆额外公共方法的子类,这些方法调用受保护的方法来测试它们(也许每个被测方法都有一个,它们只是直接传递调用到受保护的)。
然而,这个问题的前提与单元测试的想法背道而驰:你应该测试你的类提供的公共接口/契约,这只是它的公共方法。只要公共方法经过良好测试,任何私有方法都只是实现细节。
另一种看待事物的方式可能是,如果您的方法确实需要测试,则可能值得将其移动到自己的类中。