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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top