Родитель не определен при тестировании элемента директивы - PullRequest
0 голосов
/ 11 мая 2018

У меня есть директива angularjs, которая просто назначает высоту элемента равной высоте его второго родителя (что-то вроде element.height = element.parent().parent().height) в функции ссылки.

Однако, когда я создаю и пытаюсь скомпилироватьэлемент директивы в моем модульном тесте против изолированной области, я получаю element.parent().parent().height не является функцией.Я предполагаю, что родительский компонент как-то не определен при компиляции.

Как это можно решить, используя тот же или другой подход?Спасибо.

1 Ответ

0 голосов
/ 11 мая 2018

Вы можете смоделировать вызов element.parent().parent().height с помощью фальшивого отклика высоты и проверить, что высота вашего элемента была установлена ​​на это.

Что бы я сделал - это реализовать функцию и вызвать функцию как часть«Организовать» шаг вашего юнит-теста.

mockGetHeightFromParent = function (mockHeight) {
    spyOn(element, 'parent').and.returnValue({
        parent: function () {
            return mockHeight;
        }
    )};
}

it("should use height of the parent's parent", function () {
    // Arrange
    mockGetHeightFromParent(1337);

    // Act
    // Instantiate directive

    // Assert
    expect(element.height).toEqual(1337);
}
...