Как юнит тестировать StripeJs в карме Angular8 - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь провести модульное тестирование платежного компонента, который использует StripeJS.

Я импортирую его в файл 'ng-app.js':

stripe: /*@ngInject*/ function ($ocLazyLoad) {
                  return $ocLazyLoad.load({
                    type: 'js',
                    path: 'https://js.stripe.com/v3/'
                  });
                }

Внутри моего платежакомпонент (payment.component.ts) Я использую:

import {StripeJS} from 'stripejs';
import {ElementFactory, OnChange, StripeElement} from 'stripejs/element';

А также:

constructor(private fb: FormBuilder, private store: Store<AppState>) {
    this.stripe = window.Stripe(window.properties.stripePKs[this.carrier]);
    this.createStripeElements(this.stripe.elements());
  }

Но я не знаю, как НАСТРОИТЬ StripeJS внутри payment.component.spec.ts.

Компонент undefined, когда я делаю component = fixture.componentInstance;

Моя просьба знать, как объединить StripeJS в тесте как ложный или нет, чтобы я могуспешно создайте компонент для остальных тестов.

1 Ответ

0 голосов
/ 23 сентября 2019

Я никогда не использовал stripeJS, поэтому я собираюсь дать вам общий ответ, и если вам нужен конкретный пример, тогда опубликуйте свой код здесь или на GitHub, и мы можем помочь вам более подробно.Вы должны понимать, как работают жасмин и карма, перед модульным тестированием.В разделе импорта юнит-теста убедитесь, что stripeJS импортирован.в вашем UT-конструкторе есть что-то вроде mockstripejs:Mock<StripeJS> в вашем тестовом классе, где у вас есть тест, вам нужно настроить операцию чередования, которую вы хотите тестировать, если это что-то вроде stripe.getcardprovider, то вам нужна настройка типа mockstripejs.setup(x=>x.getcardprovider).is(cardProvider.Object), гдеcardProvider - это объект, который вы хотите вернуть. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...