服务层中的私有方法

时间:2017-11-23 11:50:14

标签: java spring unit-testing spring-boot private-methods

我有一个情况: 我想提供一个具有一个功能的服务类,例如: 基于某些参数生成json文件。所以我有一个公共方法,以及一些公共方法调用的私有方法。有一些私有方法,现在我有单元测试它们的问题。我知道可能性(没有测试私有方法,让它们公开(不!),refelctions,包私有),最好的是包私有解决方案,但是服务类是在xx.service包里面而我只希望一个方法是外面可见......

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

请帮忙:)

1 个答案:

答案 0 :(得分:2)

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

理想情况下有一个/两个公共方法。

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