【发布时间】:2019-11-11 19:13:11
【问题描述】:
我最近有一个要为其编写单元测试的企业项目。该应用程序真的很大。它有一个大的注射三。当我设置测试时,我花了半天时间只模拟注入的服务。问题是,我正在测试的服务具有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},
...
]
});
});
});
我想知道是否有更简单(耗时更少)的方法?
【问题讨论】:
标签: angular unit-testing jasmine angular-unit-test