如何重写此测试以测试去抖动时间。这是用于搜索框,它将在 500 毫秒后允许 api 调用。如何为这种效果编写测试用例。
效果.ts
searchBooks$ = createEffect(() =>
this.actions$.pipe(
ofType(BooksActions.searchBooks),
switchMap((action) =>
this.http.get<Book[]>(`/api/books/search?q=${action.term}`).pipe(
debounceTime(500),
map((data) => BooksActions.searchBooksSuccess({ books: data })),
catchError((error) => of(BooksActions.searchBooksFailure({ error })))
)
)
)
);
我正在编写此测试,但不知道如何测试去抖动时间,请帮忙 effects.specs.ts
describe('loadBooks$', () => {
it('should work', done => {
actions = new ReplaySubject();
actions.next(BooksActions.searchBooks({ term: '' }));
effects.searchBooks$.subscribe(action => {
expect(action).toEqual(
BooksActions.searchBooksSuccess({ books: [createBook('A')] })
);
done();
});
httpMock.expectOne('/api/books/search?q=').flush([createBook('A')]);
});
});
});