服务层私有方法

Private methods in service layer

我有一个情况: 我想提供具有一项功能的服务 class,例如: 根据一些参数生成 json 文件。所以我有一个 public 方法,还有一些由 public 方法调用的私有方法。有一些私有方法,现在我对它们进行单元测试时遇到问题。我知道可能性(没有测试私有方法,使它们 public(否!),refelctions,包私有),最好的是包私有解决方案,但服务 class 在 xx.service 内包,我只想让一种方法在外面可见...

我正在使用 Spring BOOT,我的问题是:在服务 class 中保留私有方法可能是一种糟糕的方法?也许将它们移动到任何类型的实用程序 classes? (老实说,方法是一种实用方法..)

请帮忙:)

如果被测试的 public 方法使用了太多的私有方法并且很难设置/维护测试用例,那么可能是时候提取一些逻辑到专门的 类。

最好有一个/两个public方法。

然后您单独测试这些助手 类(测试现在应该小而简单)并且在主服务中您只需将它们作为依赖项注入。 然后,您可以根据自己的喜好在主要服务测试中模拟这些依赖项。