【问题标题】:How jasmine spyOn a generic methodjasmine 如何 spyOn 一个泛型方法
【发布时间】:2020-10-08 08:45:29
【问题描述】:

我尝试对 typescript 中的泛型方法进行间谍活动,
但无法让 Jasmine 认出它。


我有代码

http: HttpClient <- Not proper code, just showing type.
...
this.http.get<Customer[]>(url);

我想在哪里模拟 get&lt;...&gt; 方法。

const httpMock = {} as HttpClient;
spyOn(httpMock, 'get')
   .and.returnValue(of({} as Customer[]));

但是当我运行测试时,我得到了

错误::get() 方法不存在
用法:spyOn(, )

【问题讨论】:

标签: typescript generics testing jasmine spyon


【解决方案1】:

补救措施是在模拟时使用任何泛型。

describe('UserService', () => {
  it('should return proper users', (done) => {

    const returnedUsers = [...];

    const mock = {
      get: (_) => of({returnUsers}),
    } as HttpClient;

    const sut = new UserService(mock);

    //  Act.
    sut.getUser()
        .subsribe(users => {

            //  Assert.
            ...

            done();
        });
  });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-29
    • 2019-02-09
    • 1970-01-01
    • 2016-07-12
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    相关资源
    最近更新 更多