Макет сторонней библиотеки (Razorpay) в тестах Angular Unit? - PullRequest
1 голос
/ 22 апреля 2019

Я пытаюсь протестировать функцию в одном из моих компонентов, которая состоит из следующих двух строк:

this.rzp1 = new Razorpay(orderDetails);
this.rzp1.open();

Я пытаюсь понять, как смоделировать Razorpay в моих тестовых случаях для этой функции.

Вот как я объявляю Razorpay в своем компоненте:

export declare var Razorpay: any;

Я уже пробовал различные методы, такие как:

var stub = sinon.createStubInstance(MyConstructor)

Любые выводы будут полезны.

1 Ответ

1 голос
/ 23 апреля 2019

Почему бы не использовать встроенную в Jasmine шпионскую функцию вместо того, чтобы полагаться на другую библиотеку (sinon)?

В вашем блоке перед каждым блоком вы можете сделать что-то вроде этого:

beforeEach(() => {
  jasmine.spyOnAllFunctions(Razorypay.prototype);
  Razorypay.prototype.open.and.returnValue('foo');
});

ВыБолее подробную информацию о spyOnAllFuntions можно найти в документации .

...