【发布时间】:2021-04-14 15:36:43
【问题描述】:
我有一堆服务类,看起来都差不多,或者类似。
@Service
public class ServiceA {
private RepositoryA repA;
private RepositoryB repB;
private DependencyC depC;
private DependencyD depD;
private ServiceB serviceB;
@Autowired
public ServiceA(RepositoryA repA, RepositoryB repB, DependencyC depC, DependencyD depD, ServiceB serviceB) {
this.repA = repA;
....
}
}
现在我想在我的测试类中使用这些服务而不启动 Spring。如果我在应用程序上下文中使用 bean,测试会花费太长时间。我想模拟服务类,但由于深度嵌套的结构,我不知道如何。简单的方法是模拟 ServiceA 使用的所有存储库、依赖项和服务,并将它们自己注入到测试类中,但这似乎不对,因为我必须对 ServiceB 做同样的事情。
【问题讨论】:
-
您为什么需要使用
ServiceB来执行此操作?这也应该是这个类的一个模拟。