我想知道测试工厂行为代码的最佳实践是什么。在我的例子中,工厂创建了一些依赖实例,这些实例将传递给 FooBar 实例的构造函数。
public class FooBarFactory {
private Dependency1 dependency1;
private Dependency2Factory factory;
public FooBarFactory(Dependency1 dependency1, Dependency2Factory factory) {
this.dependency1 = dependency1;
this.factory = factory;
}
public FooBar create() {
return new FooBar(dependency1, factory.create(), new Dependency3());
}
}
依赖关系可以由其他一些工厂创建,也可以由被测工厂直接创建。
为了测试工厂行为,我现在要做的是在 FooBar 中创建一些受保护的 getter 来检索依赖项,这样我就可以断言构造函数注入并且正确创建了依赖项。
这是我不确定的地方。为了测试的目的添加一些吸气剂让我有点困扰,因为它破坏了封装。我也可以使用反射来检索字段值,但我通常认为这是不好的做法,因为它很容易被破坏。
任何人都可以提供有关此问题的见解吗?