這是我的服務。
import { Injectable } from "@angular/core";
import { Subject } from "rxjs";
import { Observable } from "rxjs";
import { filter, map } from "rxjs/operators";
interface i {
key: any;
value: any;
}
@Injectable()
export class Srvc {
private subject: Subject<i>;
constructor() {
this.subject = new Subject<i>();
}
next(key: any, value?: any) {
this.subject.next({ key, value });
}
sub<T>(key: any): Observable<T> {
return this.subject.asObservable().pipe(
filter((event) => {
return event.key === key;
}),
map((event) => <T>event.value)
);
}
}
這是我的規格檔案
import { Observable, of, Subject } from "rxjs";
import { Injectable } from "@angular/core";
import { TestBed, inject } from "@angular/core/testing";
import { Srvc } from "./srvc.service"
interface i{
key: any;
value: any;
}
fdescribe("Srvc", () => {
let service: Srvc;
beforeEach(async () => {
TestBed.configureTestingModule({
providers: [
Srvc,
],
});
});
it("should be created", () => {
service = TestBed.inject(Srvc);
expect(service).toBeTruthy();
})
it('should be subscribed', (() => {
service = TestBed.inject(Srvc);
service.next('test', "Hello World");
service.sub<any>('test').subscribe((message: any) => {
expect(message).toBe("Hello World")
})
}))
})
我收到“SPEC 不應該訂閱任何期望”。我從角度測驗開始。我正在閱讀有關它的文章,但無法弄清楚我做錯了什么。任何建議都會有所幫助。謝謝你。
uj5u.com熱心網友回復:
it('should be subscribed', ((done) => {
service = TestBed.inject(Srvc);
service.sub<any>('test').subscribe((message: any) => {
expect(message).toBe("Hello World");
done();
})
service.next('test', "Hello World");
}))
它是異步的,因此測驗套件不知道異步部分何時“完成”
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/462674.html
