Я получаю ошибку при выполнении следующего углового теста при использовании жасмина и кармы.Я подозреваю, что это вызов метода getCurrencyCodes в компоненте заказа полосы.Он вызывает метод getCurrencyCodes tradeservice, который возвращает наблюдаемое.Это издевательство, что я сделал неправильно?
TypeError: Cannot read property 'subscribe' of undefined
StripOrdercomponent html
ngOnInit() {
this.getCurrencyCodes();
}
private getCurrencyCodes() {
this.tradeService.getCurrencyCodes()
.subscribe(
data => {
this.currencyList = data;
},
error => {
this.messageViewerModel.messages.push("Unable to get Currency codes");
});
}
Файл спецификации заказа полосы
class MockDateService {
}
class MockTradeService {
getCurrencyCodes() {
return;
}
}
class MockAuthService {
}
class MockOrderService {
}
class MockValueDateService {
}
class MockClientService {
}
class MockMessageViewerModel {
title: string;
messages: string[];
}
@Component({
selector: 'app-message-viewer',
template: ''
})
class MockMessageViewerComponent {
@Input()
messageViewer: MockMessageViewerModel;
}
describe('StripOrderComponent', () => {
let component: StripOrderComponent;
let clientService: ClientService;
let tradeService: TradeService;
let fixture: ComponentFixture<StripOrderComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
HttpClientModule,
RouterTestingModule,
FormsModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLanguageLoader
}
})
],
declarations: [
StripOrderComponent,
MockMessageViewerComponent,
],
providers: [
[{ provide: DateService, useClass: MockDateService }],
[{ provide: TradeService, useClass: MockTradeService }],
[{ provide: AuthService, useClass: MockAuthService }],
[{ provide: OrderService, useClass: MockOrderService }],
[{ provide: ValueDateService, useClass: MockValueDateService }],
[{ provide: ClientService, useClass: MockClientService }]
],
schemas: [NO_ERRORS_SCHEMA]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(StripOrderComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should be created', () => {
// spyOn(MockTradeService, 'getCurrencyCodes').and.returnValue({ subscribe: () => {} })
expect(component).toBeTruthy();
});
});