为 HttpClient 帖子创建间谍会创建返回值错误

我有一个将HttpClient服务作为值的服务,我想监视post那个类的方法,所以我创建了一个看起来像这样的间谍:


spyOn(httpClient, 'post').and.returnValue(() => new Subject<any>().asObservable());

但是,我收到以下错误:


Argument of type '() => Observable<any>' is not assignable to parameter of type 'Observable<unknown>'.

  Type '() => Observable<any>' is missing the following properties from type 'Observable<unknown>': _isScalar, source, operator, lift, and 6 more.

这是它来自的规范:


describe('GraphQLClientService', () => {

  let service: GraphQLClientService;

  let httpClient: HttpClient;

  let postSpy: any;


  beforeEach(() => {

    httpClient = jasmine.createSpyObj('HttpClient', []);

    postSpy = spyOn(httpClient, 'post').and.returnValue(() => new Subject<any>().asObservable());

    service = new GraphQLClientService(httpClient);

  });

});


梦里花落0921
浏览 84回答 1
1回答

狐的传说

您正在返回一个函数,该函数返回一个 Observable 而不仅仅是一个 ObservablepostSpy&nbsp;=&nbsp;spyOn(httpClient,&nbsp;'post').and.returnValue(new&nbsp;Subject<any>().asObservable());或者postSpy&nbsp;=&nbsp;spyOn(httpClient,&nbsp;'post').and.returnValue(of({}));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript