API Mock Bing Maps с Jest в React.js - PullRequest
       31

API Mock Bing Maps с Jest в React.js

1 голос
/ 26 июня 2019

В моем тесте Jest мне нужно сгенерировать Push-пин Bing Maps следующим образом:

it('...', () => {
  var e = new window.Microsoft.Maps.Pushpin({ "latitude": 56.000, "longitude": 46.000 }, {});
  /* do stuff */
  expect(e.getColor()).toEqual('#ffd633');
})

Но во время выполнения теста я получаю ошибку:

TypeError: Cannot read property 'Maps' of undefined

Кто-нибудь знает, как издеваться над тем, что API Карт Bing Microsoft взаимодействует с Jest в React?

1 Ответ

1 голос
/ 06 июля 2019

Один из вариантов - ввести макет классов API Карт Bing и зарегистрировать его с помощью beforeAll Функция настройки Jest , как показано ниже:

const setupBingMapsMock = () => {
  const Microsoft = {
    Maps: {
      Pushpin : class {
        location = null;
        options = null;
        constructor(location,options) {
          this.location = location;
          this.options = options;
        }

        getColor(){
          return this.options.color;
        }
      }
    }
  };

  global.window.Microsoft = Microsoft;
};

beforeAll(() => {
  setupBingMapsMock();
});

it("creates a marker", () => {
  const e = new window.Microsoft.Maps.Pushpin(
    { latitude: 56.0, longitude: 46.0 },
    {'color': '#ffd633'}
  );
  expect(e.getColor()).toEqual("#ffd633");
});

Результат

enter image description here

...