Допустим, у нас есть метод с именем Method1
, который принимает и объект obj={ name: 'jack', phone: '123' }
, как вы можете видеть, здесь есть два свойства, name и phone.
Method1 внутренне вызывает Method2 с obj.phone
в качестве аргумента.
FIDDLE
export class AppComponent {
method1(obj: any) {
this.method2(obj.phone);
}
method2(val) {
}
}
Я хотел бы проверить, был ли вызван метод2, а также был ли ему передан правильный аргумент.Который в этом случае всегда будет собственностью телефона obj.
Является ли callFake () решением?Как мне это сделать?
Код, который не работает:
it('should do something', () => {
let obj = { name: 'jack', phone: '123' }
let passedarg;
let spy = spyOn(subject, 'method2').and.callFake(function (arg) {
passedarg = arg;
});
expect(obj).toHaveBeenCalledWith(obj.phone);
});