2015-05-07 3 views
7

Я искал везде, я пробовал перехват узлов, но с транспортиром, но он не будет работать с селеном.Как получить тесты для записи светильников с помощью AngularJs, таких как vcr в Rails?

Я также пробовал vcr.js и сепию.

Как мне настроить свои тесты на то, что они делают начальные вызовы, но сохраняют их как кассеты типа vcr.

Cheers.

+0

Вы что-то нашли? Это было бы полезно для того, что я пытаюсь сделать. –

+0

до сих пор я использую угловой-макет, но он включает в себя вставку ответов от инспектора. это не так гладко, как хотелось бы. –

ответ

0

Я настраивал сепию для использования с транспортиром. Теперь это то, что я сделал:

Я предполагаю, что вы уже настроили grunt-connect для запуска ваших испытаний транспортира.

Тогда вам придется ждать события прослушивания события от конфигурации подключения: grunt.event.once('connect.test.listening', function)

И это, где вы будете настраивать сепия.

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