constructor(private a:dependencyA,private b:dependencyB,private c:dependencyC){
}
зависимость может выглядеть следующим образом:
export class dependencyA {
showPopup: boolean;
defaultProperties = {
showPopup: this.showPopup,
};
private propertiesSource = new BehaviorSubject(this.defaultProperties);
currentProperties = this.propertiesSource.asObservable();
}
Чтобы выполнить модульное тестирование, мне нужно будет написать заглушки для каждой зависимости конструктора вместе с фиктивными данными или методами внутри каждой заглушки вручную, чтобы она работала.
Что-то вроде:
class dependencyAStub{
defaultProperties = {
showPopup: false,
};
private propertiesSource = new BehaviorSubject(this.defaultProperties);
currentProperties = this.propertiesSource.asObservable();
push(value){
this.propertiesSource.next(value);
}
}
и
TestBed.configureTestingModule({
declarations: [ ComponentDetailsComponent ],
providers: [{ provide: dependencyA, useClass: dependencyAStub }],
providers: [{ provide: dependencyB, useClass: dependencyBStub }],
providers: [{ provide: dependencyC, useClass: dependencyCStub }],
})
Есть ли лучший способ предоставить фиктивные заглушки для всех зависимостей? Если в конструкторе компонента имеется 8 зависимостей, каждая из которых имеет 4-5 функций и свойств. Мне придется потратить много времени на написание заглушек.
Было бы здорово, если бы я мог генерировать заглушки и т. Д. Автоматически и мог бы указать конкретные значения для одной или нескольких зависимостей вручную для тестирования.