2015-05-07 10 views
7

Ich habe überall gesucht, ich habe versucht Knoten-Replay aber mit Winkelmesser, aber es wird nicht mit Selen funktionieren.Wie erhalten Sie Tests, um Fixtures mit AngularJs wie vcr in Rails aufzuzeichnen?

Ich habe auch vcr.js und Sepia versucht.

Wie gehe ich über meine Tests für die Einrichtung, dass sie die ersten Anrufe zu tätigen, sondern speichern sie als Kassetten wie vcr.

Prost.

+0

Haben Sie etwas gefunden? Dies wäre hilfreich für das, was ich versuche zu tun. –

+0

bis jetzt Winkel Mock ich verwende aber es Einfügen Antworten vom Inspektor beinhaltet. es ist nicht so glatt wie ich es gerne hätte. –

Antwort

0

Ich habe Sepia eingerichtet, um mit Winkelmesser verwendet werden. Es funktioniert jetzt, hier ist, was ich getan habe:

Ich nehme an, Sie haben bereits grunt-connect eingerichtet, um Ihre Winkelmesser Tests auszuführen.

Dann müssen Sie auf das Ereignis wartet Ereignis aus der Verbindungskonfiguration warten: grunt.event.once('connect.test.listening', function)

Und das ist, wo Sie Sepia konfiguriert.

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); 
     } 
     }); 
    }); 
    }); 
});