Ajax burla pruebas unitarias utilizando Jack
-
21-09-2019 - |
Pregunta
Estoy utilizando como Jack biblioteca burlarse JavaScript. http://github.com/keronsen/jack . También estoy usando qunit.
He siguiente llamada AJAX en mi código JavaScript que estoy Tring para escribir pruebas para.
$.ajax({
url: $('#advance_search_form').attr('action'),
type: 'post',
dataType: 'json',
data: parameterizedData,
success: function(json) {
APP.actOnResult.successCallback(json);
}
});
Tras código está trabajando.
jack(function() {
jack.expect('$.ajax').exactly('1 time');
}
Sin embargo, quiero probar si todos los argumentos son enviadas correctamente. He intentado siguiente, pero no funcionó.
jack.expect('$.ajax').exactly('1 time').whereArgument(0).is(function(){
args var = argumentos; bien ( ' http: // localhost: 3000 / usuarios ', args.url, 'URL debe ser válida' ); // test similary para muchas claves de objeto });
Quiero conseguir el asimiento de argumentos para que pudiera llevar a cabo una serie de pruebas.
Solución
Dos enfoques:
Use .hasProperties ():
jack.expect('$.ajax').once()
.whereArgument(0).hasProperties({
'type': 'post',
'url': 'http://localhost:3000/users'
});
... o capturar los argumentos y hacer afirmaciones qunit:
var ajaxArgs;
jack.expect('$.ajax').once().mock(function() { ajaxArgs = arguments[0]; });
// ... the code that triggers .ajax()
equals('http://localhost:3000/users', ajaxArgs.url);
La primera versión utiliza más de la API de Jack (que merece una mejor documentación), y es más fácil de leer, la OMI.
La última versión que va a dar mucho mejor información de errores.