Модульное тестирование iFrame check - window & window.parent - PullRequest
0 голосов
/ 14 января 2019

Я использую следующий код, чтобы определить, была ли страница загружена в iFrame или нет.

export default function isIFrame () {
  return window !== window.parent;
}

Это хорошо работает и возвращает ожидаемые значения.

Сейчас я изучаю написание модульных тестов для этого, я подумал, что это просто случай насмешки window и window.parent и присвоения им различных значений, что-то вроде ...

  it('should return false if page is not being loaded within an iframe', () => {
    window = {
      somekey: 'somevalue'
    };
    window.parent = {
      somekey: 'someothervalue'
    };

    const hasPageBeenLoadedInsideIframe = isIFrame();
    expect(hasPageBeenLoadedInsideIframe).toEqual(false);
  });

Пара вопросов, во-первых, это правильный вид модульного теста, который я должен написать?

Во-вторых, если это то, какие значения мне следует менять между window и window.parent? Что на самом деле отличается?

Я пытался использовать инструменты разработчика Chrome (используя команду copy($0)), чтобы скопировать их оба и выполнить проверку различий, но я не могу заставить это работать, просто выводится [object Window].

Кто-нибудь может помочь?

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