我最近有一个要为其编写单元测试的企业项目。该应用程序真的很大。它有一个大的注射三。当我设置测试时,我花了半天时间只模拟注入的服务。问题是,我正在测试的服务有n
许多注入服务,其中每个注入服务都有注入服务n
的数量,并且列表继续到无限数量。目前我只是通过创建假类来模拟它们,但话又说回来,为每个假类编写假方法在这个项目中是一项非常耗时的任务。(主要是因为每个注入的服务在构造函数中都有大量的订阅)。
我目前的测试设置:
class FrameStateServiceStub {
public changedCurrentFrame: Observable<LayerId> = EMPTY;
public changedAvailableFrames: Observable<LayerId> = of("");
public getCurrentFrame(layerId: LayerId): Frame {
return frame;
}
public getAvailableFrames(layerId: LayerId): Frame[] {
return [frame];
}
}
class LoadingIndicatorServiceStub {
}
describe("DisplayService", () => {
const frameStateServiceStub = new FrameStateServiceStub();
const loadingIndicatorServiceStub = new LoadingIndicatorServiceStub();
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
DisplayService,
{provide: FrameStateService, useValue: frameStateServiceStub},
{provide: LoadingIndicatorService, useValue: loadingIndicatorServiceStub},
...
]
});
});
});
我想知道是否有一种更简单(耗时更少)的方式来做到这一点?