最近,我不得不重构一个类[X]并改进其单元测试,并发现为了从测试中完全覆盖该类,我需要模拟3个不同组件的行为班上的对于参数,缘故类为[A],[B]和[C]。因为[A],[B]和[C]都是在[X]中构造的,所以我决定为每个传递一个供应商,以允许单元测试模拟供应商并实现对该类的完整测试。
但是,我的一位同事建议我可以为[A],[B]和[C]中的每一个添加程序包可见的吸气剂方法来处理对象构造,然后在创建对象时从单元测试中覆盖它们要测试的[X]实例。
我看到这消除了添加Supplier实现的额外麻烦,但是我觉得这不必要地暴露了[X]的实现。这些方法中的一种被认为比另一种更好吗?我正在从事的项目使用的是我不太熟悉的Spring,但我想知道是否有更好的解决方案。
有人对此有建议吗?