2
我有一個組件,並且在構造函數中,我訂閱了一個事件。角度4:如何測試訂閱中的事件
我通過一個事件服務
import {Injectable} from '@angular/core';
import {Observable} from "rxjs/Observable";
import {Subject} from "rxjs/Subject";
@Injectable()
export class EventService {
private sendSource = new Subject<string>();
sendMessage (message: string) {
this.sendSource.next (message);
}
getMessage(): Observable<any> {
return this.sendSource.asObservable();
}
}
發送事件的組件構造器:
constructor (private eventService: EventService) {
this.subscription = this.eventService.getMessage()
.subscribe (message => {
this.menu = message;
});
}
代表.spec文件:
it ('should receive event', async (() => {
eventService = new EventService();
eventService.sendMessage ('test');
fixture.detectChanges();
fixture.whenStable().then (() => {
expect (component.menu).toBeEqual('test');
});
}));
我的問題:this.menu
屬性不當我發送一個事件時改變。
有人能解釋我在推理中的錯誤嗎? 在此先感謝。
謝謝。我將服務添加爲提供程序,但我沒有使用注入器... – Mika