【发布时间】:2015-03-14 05:30:00
【问题描述】:
我有一个班级负责将合同从 CSV 导入数据库。
类本身只有一个启动导入的公共方法,其他方法都是私有的(因为只有类本身会使用,并且它们持有逻辑)。
我开始使用 Spock 为这个类做测试,私有方法很多,我应该如何测试呢?
我应该将它们公开进行测试吗?只测试 main 方法,public 方法?
什么是最好的?
【问题讨论】:
-
如果您需要针对这些方法运行 JUnit 测试,它们需要是
public。这样做会导致任何问题吗? -
您可以将这些私有方法变成包方法(而不是公共),然后您的测试只需在同一个包中即可。
-
我建议通读这篇 SO 帖子:stackoverflow.com/questions/105007/…
-
Spock 测试是用 Groovy 编写的,这意味着它们可以调用私有 (Java) 方法。所以这不是技术问题,只是你是否想去那里的问题。
-
@Ascalonian,它会破坏封装。
标签: java unit-testing junit integration-testing spock