2015-05-07 15 views
7

Ho cercato ovunque, ho provato il replay del nodo ma con il goniometro ma non funzionerà con il selenio.Come ottenere test per registrare dispositivi con AngularJs come vcr in Rails?

Ho anche provato vcr.js e seppia.

Come impostare i miei test per effettuare le chiamate iniziali ma memorizzarle come cassette come videoregistratore.

Cheers.

+0

Hai trovato qualcosa? Questo sarebbe utile a quello che sto cercando di fare. –

+0

fino ad ora sto usando angular-mock ma riguarda l'incollare le risposte dall'ispettore. non è così liscio come mi piacerebbe. –

risposta

0

Ho impostato il seppia da utilizzare con il goniometro. Funziona ora, ecco cosa ho fatto:

Suppongo che tu abbia già configurato grunt-connect per eseguire i tuoi test del goniometro.

Poi è necessario attendere che la ascolto evento evento dalla configurazione di connessione: grunt.event.once('connect.test.listening', function)

ed è lì che si configurerà seppia.

grunt.event.once('connect.test.listening', function(host, port) { 
    /** 
    * Configure sepia here 
    */ 

    var sepia = require('sepia').withSepiaServer(); 

    // Use your custom configuration 
    sepia.configure({ 
     verbose: true, 
     debug: true, 
     includeHeaderNames: false, 
     includeCookieNames: false 
    }); 

    // I have some path/body content to filter configured in the vrc configuration 
    var bodyFilters = grunt.config('vcr.filters.body') || []; 
    var pathFilters = grunt.config('vcr.filters.path') || []; 
    var regexPath = function(string) { 
     var escapedString = string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&'); 
     return new RegExp(escapedString); 
    }; 

    // Filter path 
    _.map(pathFilters, function(filter) { 
     sepia.filter({ 
     url: regexPath(filter.path), 
     urlFilter: function(url) { 
      return url.replace(filter.pattern, filter.replacement); 
     } 
     }); 
    }); 

    // Filter body content 
    _.map(bodyFilters, function(filter) { 
     sepia.filter({ 
     url: regexPath(filter.path), 
     bodyFilter: function(body) { 
      return body.replace(filter.pattern, filter.replacement); 
     } 
     }); 
    }); 
    }); 
}); 
Problemi correlati