tengo código de jQuery que cuando hago clic en un enlace de TI primeros cueros y luego quita algo de HTML, así:Esperando en QUnit pruebas
$(this).parent().parent().hide('slow', function() {
$(this).remove();
});
Quiero hacer una prueba QUnit que se asegura de que el HTML en cuestión se ha eliminado:
$(thelink).click();
// Check that it is gone, by finding the first item in the list
entity = input.form.find('.recurrenceinput_occurrences .occurrence span.action a')[0];
// And make sure it's NOT the deleted one:
ok(entity.attributes.date.value !== "20110413T000000");
el problema es, por supuesto, que la prueba bien() se ejecuta antes de la piel de animación se ha quedado a su fin, por lo que el HTML offenting no se ha quitado todavía, y la prueba falla .
He intentado varias formas de retrasar/detener la prueba durante un segundo, pero nada parece funcionar. El más obvio es usar un asynTest y hacer
stop();
setTimeout(start, 2000);
Pero esto en realidad no detiene la prueba. Parece detener algo durante dos segundos, pero no estoy seguro de qué. :-)
¿Alguna idea?
Bingo! Ese era el orden correcto de las cosas. :-) Entonces, ¿stop() en realidad solo detiene la finalización de la prueba? –
Este enfoque estaba en desuso (http://qunitjs.com/upgrade-guide-2.x/#replace-stop-and-start-with-assert-async). La respuesta de @ ekcrisp usa el nuevo enfoque. – Joe
Qué sorpresa que algo que se pidió hace 6 años está en desuso. lol – epascarello