Probando el selector Jquery con las pruebas unitarias Jasmine.

$('.froala > div > div > div > p').each(function (index, element) { if ($(element).text() !== '') { wordCount += $(element).text().split(' ').length; } }); 

Tengo este código que obtiene todas las tags

en el editor de froala y las cuenta. Necesito escribir una prueba unitaria de Jasmine para cubrir esto y no tengo ni idea de cómo hacerlo. Tal vez podría usar un spyOn y devolver una matriz de

tags …

 spyOn($('.froala > div > div > div > p'), 'each').and.returnValue([all, my, tags, here]); 

¿Alguna otra idea?

Realmente no deberías estar escribiendo pruebas para probar jQuery, y el jasmine no tiene la intención de probar el dominio. Solo debe escribir pruebas para su propio código y tener entradas / salidas deterministas.

  var myFunction = function(index, element) { if ($(element).text() !== '') { wordCount += $(element).text().split(' ').length; } } var jquerySelector = ".froala > div > div > div > p"; $(jquerySelector).each(myFunction }); 

Luego escriba las pruebas de jasmine que importan el archivo anterior y tienen el html de froala esperado

 var wordCount = 0; var testhtml = '

one

two

'; $(testhtml).find(jquerySelector).each(myFunction) expect( wordCount ).toEqual(2)