2016-09-16 3 views
1

Мой код JS упоминается ниже:Test Case для вызова функции на document.ready

if (typeof IPL === "undefined") { 
    IPL = {}; 
} 

/// <summary>Declare Namespace IPL.Register</summary> 
if (typeof IPL.Register === "undefined") { 
    IPL.Register = {}; 
} 

$(document).ready(function() { 
    IPL.Register.Print.initialize(); 
}); 

/// <summary>Declare Namespace IPL.Register.Print</summary> 
IPL.Register.Print = 
{ 
    /// <summary>Function to call on initialize page.</summary> 
    initialize: function() { 
     window.onload = function() { 
      window.print(); 
     }; 
    } 
}; 

При запуске тестового примера (Qunit.js и blanket.js), как указано ниже, то функция document.ready не получение вызова и покрытие кода не охватывают эту строку. Ниже тестового примера отлично работает, но он включает только последние строки кода и функцию инициализации при загрузке окна.

test("initialize test", 1, function() { 
    var result = IPL.Register.Print.initialize(); 
    equal(undefined, result, "passed"); 
}); 

Кто-нибудь, пожалуйста, помогите, как написать тестовый пример для выполнения функции при загрузке документа?

+0

Какой тест вы хотите? Единичный тест не должен зависеть от события document.ready. Если вам нужен тест e2e, вы можете попробовать что-то вроде [selenium] (http://www.seleniumhq.org/) – Anticom

+0

Я просто хочу улучшить процент покрытия кода. – Raj

ответ

0

Лучший способ сделать это - не протестировать событие загрузки вообще. Просто поместите обработчик события в именованную функцию, а затем проверьте поведение этой функции.

/// <summary>Declare Namespace IPL.Register.Print</summary> 
IPL.Register.Print = { 
    /// <summary>Function to call on initialize page.</summary> 
    initialize: function() { 
    window.onload = function() { 
     window.print(); 
    }; 
    }, 
    print: function() { 
    window.print(); 
    } 
}; 

test("initialize test", 1, function() { 
    var result = IPL.Register.Print.print(); 
    equal(undefined, result, "passed"); 
}); 

http://jsfiddle.net/Tintin37/vpqjsr8L/

Событие нагрузки просто запускает вашу функцию, что вы хотите конкретно добиться путем тестирования события нагрузки?

Смежные вопросы