服务层私有方法
Private methods in service layer
我有一个情况:
我想提供具有一项功能的服务 class,例如:
根据一些参数生成 json 文件。所以我有一个 public 方法,还有一些由 public 方法调用的私有方法。有一些私有方法,现在我对它们进行单元测试时遇到问题。我知道可能性(没有测试私有方法,使它们 public(否!),refelctions,包私有),最好的是包私有解决方案,但服务 class 在 xx.service 内包,我只想让一种方法在外面可见...
我正在使用 Spring BOOT,我的问题是:在服务 class 中保留私有方法可能是一种糟糕的方法?也许将它们移动到任何类型的实用程序 classes? (老实说,方法是一种实用方法..)
请帮忙:)
如果被测试的 public 方法使用了太多的私有方法并且很难设置/维护测试用例,那么可能是时候提取一些逻辑到专门的 类。
最好有一个/两个public方法。
然后您单独测试这些助手 类(测试现在应该小而简单)并且在主服务中您只需将它们作为依赖项注入。
然后,您可以根据自己的喜好在主要服务测试中模拟这些依赖项。
我有一个情况: 我想提供具有一项功能的服务 class,例如: 根据一些参数生成 json 文件。所以我有一个 public 方法,还有一些由 public 方法调用的私有方法。有一些私有方法,现在我对它们进行单元测试时遇到问题。我知道可能性(没有测试私有方法,使它们 public(否!),refelctions,包私有),最好的是包私有解决方案,但服务 class 在 xx.service 内包,我只想让一种方法在外面可见...
我正在使用 Spring BOOT,我的问题是:在服务 class 中保留私有方法可能是一种糟糕的方法?也许将它们移动到任何类型的实用程序 classes? (老实说,方法是一种实用方法..)
请帮忙:)
如果被测试的 public 方法使用了太多的私有方法并且很难设置/维护测试用例,那么可能是时候提取一些逻辑到专门的 类。
最好有一个/两个public方法。
然后您单独测试这些助手 类(测试现在应该小而简单)并且在主服务中您只需将它们作为依赖项注入。 然后,您可以根据自己的喜好在主要服务测试中模拟这些依赖项。