2015-05-07 17 views
7

Her yere baktım, node-replay denedim ama protractor ile ama selenyum ile çalışmaz.Ragular'da AngularJs vcr ile fikstürleri kaydetmek için testler nasıl yapılır?

Ayrıca vcr.js ve sepia'yı da denedim.

İlk aramaları yaptıklarından, ancak bunları vcr gibi kaset olarak sakladıkları için sınamalarımı nasıl ayarlayabilirim?

Şerefe.

+0

Bir şey buldunuz mu? Bu, yapmaya çalıştığım şeylere yardımcı olur. –

+0

şimdiye kadar angular-alay kullanıyorum ama müfettişin cevapları yapıştırmayı içeriyor. İstediğim kadar kaygan değil. –

cevap

0

İletki ile kullanılmak üzere sepya kuruyorum. Şu an çalışıyor, işte yaptığım şey:

Proses cihazlarınızı test etmek için grunt-connect kurmuş olduğunuzu farz ediyorum. grunt.event.once('connect.test.listening', function)

Ve sepya yapılandıracak orası:

Sonra bağlantı yapılandırmasından olay dinleme olayı beklemeniz gerekecektir.

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); 
     } 
     }); 
    }); 
    }); 
}); 
İlgili konular