【问题标题】:How to test private methods using matlab.unittest?如何使用 matlab.unittest 测试私有方法?
【发布时间】:2015-03-13 23:23:18
【问题描述】:

我目前正在为一个用面向对象的 Matlab 编写的项目实施单元测试。

从设计来看,我无法从测试类中的测试方法访问类的私有方法。

是否有任何解决方法可以直接测试这些方法而不将它们公开?

【问题讨论】:

标签: matlab unit-testing oop private


【解决方案1】:

如果您需要直接测试它们,最简单的方法就是将它们公开。

另一种方法是让它们受到保护,然后有一个带有一堆额外公共方法的子类,这些方法调用受保护的方法来测试它们(也许每个被测方法都有一个,它们只是通过直接调用受保护的调用)。

但是,问题的前提与单元测试的想法背道而驰:您应该测试您的类提供的公共接口/合同,这只是它的公共方法。只要公共方法经过良好测试,任何私有方法都只是实现细节。

另一种看待事物的方式可能是,如果您的方法确实需要测试,则可能值得将其移至自己的类中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-27
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多