Nano Hash - криптовалюты, майнинг, программирование

Как проверить селектор jquery с жасмином

Нам нужно протестировать функцию, которая оценивает верхнюю позицию элемента. В следующем примере элемент с идентификатором «test».

function xxx(){
    var element = $('#test');
    return element[0].getBoundingClientRect().top;
}

Чтобы протестировать эту функцию с жасмином, мы попробовали следующий тестовый подход:

var myObj = {
                name: 'test',
                getBoundingClientRect: function () {
                    return {top: 100}
                }
            }

spyOn($('#test'), 'getBoundingClientRect').and.returnValue([myObj]);

и получите ошибку:

Error: <spyOn> : getBoundingClientRect() method does not exist
    Usage: spyOn(<object>, <methodName>) (line 4740)

  • getBoundingClientRect не является частью jquery, поэтому вы не сможете сделать это так. почему бы не пройти document.querySelector(#test)? 14.02.2018
  • Вы проверили spyOn($('#test')[0], 'getBoundingClientRect').and.returnValue([myObj]); 14.02.2018
  • Да, я проверил pyOn($('#test')[0], 'getBoundingClientRect').and.returnValue([myObj]);, выдает еще одну ошибку "Ошибка: ‹spyOn›: не удалось найти объект для слежки за получитьBoundingClientRect()' 14.02.2018
  • @karthick да, спасибо, переключился на document.querySelector и все в порядке. 14.02.2018
  • @ABX. Большой. Включая мой комментарий в качестве ответа. 14.02.2018

Ответы:


1

Включая мой комментарий в качестве ответа.

getBoundingClientRect не является частью jquery, поэтому вы не сможете получить от него значение, когда будете шпионить за ним.

Вместо этого вы можете передать элемент напрямую document.querySelector("#test").

spyOn(document.querySelector("#test"), 'getBoundingClientRect').and.returnValue([myObj]);
14.02.2018
  • Вы можете издеваться над element[0] (и, таким образом, получитьBoundingClientRect, установив шпион на jQuery.prototype.init, см. ), но в этом нет необходимости. Здесь будет работать прямое издевательство над getBoundingClientRect. 14.02.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..