间谍必须在之前的函数或规范中创建 angular
spies must be created in a before function or a spec angular
我有这个私有函数:
private GetChargesByClient(clientId: number): Observable<any[]> {
const ds = new Date();
const dateTocompare = new Date(ds.setFullYear(ds.getFullYear() - 1));
return this.getCharges(id).pipe(map(res => res.filter(x => x.date >= dateTocompare)));
}
我为它写了一个单元测试:
describe('getAllCharges', () => {
const _response: any[] =[
{
"type": "Ongoing ",
"date": 1562108400000,
"totalPayment": "11.54",
"document": 37
},
{
"type": "Ongoing ",
"date": 1559689200000,
"totalPayment": "11.04",
"document": 37
}
];
it('then', (done) => {
const service: chargesService = TestBed.get(chargesService);
spyOn<any>(service, 'getCharges').and.returnValue(of(_response));
const res = service['GetChargesByClient'](130).subscribe(() => done);
expect(res).toBe(null);
});
});
但是当我 运行 测试时我得到一个错误
spies must be created in a before function or a spec
我有其他私有方法测试,它们 运行 OK。谁能发现我遗漏的任何东西
有一件事,res
将是一个订阅对象,而不是发出的值(因此,不是 null)。另一个,我不确定这里 done
的目的是什么(这可能会让 Jasmine 失望)。
尝试
it('could use a more descriptive expectation', () => {
const service: chargesService = TestBed.get(chargesService);
spyOn<any>(service, 'getCharges').and.returnValue(of(_response));
service['GetChargesByClient'](130)
.subscribe((result) => expect(result).toBeNull());
});
我有这个私有函数:
private GetChargesByClient(clientId: number): Observable<any[]> {
const ds = new Date();
const dateTocompare = new Date(ds.setFullYear(ds.getFullYear() - 1));
return this.getCharges(id).pipe(map(res => res.filter(x => x.date >= dateTocompare)));
}
我为它写了一个单元测试:
describe('getAllCharges', () => {
const _response: any[] =[
{
"type": "Ongoing ",
"date": 1562108400000,
"totalPayment": "11.54",
"document": 37
},
{
"type": "Ongoing ",
"date": 1559689200000,
"totalPayment": "11.04",
"document": 37
}
];
it('then', (done) => {
const service: chargesService = TestBed.get(chargesService);
spyOn<any>(service, 'getCharges').and.returnValue(of(_response));
const res = service['GetChargesByClient'](130).subscribe(() => done);
expect(res).toBe(null);
});
});
但是当我 运行 测试时我得到一个错误
spies must be created in a before function or a spec
我有其他私有方法测试,它们 运行 OK。谁能发现我遗漏的任何东西
有一件事,res
将是一个订阅对象,而不是发出的值(因此,不是 null)。另一个,我不确定这里 done
的目的是什么(这可能会让 Jasmine 失望)。
尝试
it('could use a more descriptive expectation', () => {
const service: chargesService = TestBed.get(chargesService);
spyOn<any>(service, 'getCharges').and.returnValue(of(_response));
service['GetChargesByClient'](130)
.subscribe((result) => expect(result).toBeNull());
});