2017-12-12 15 views
0

私はテスト環境にKarma/Mochaを使用しています。私はURLを取得するwindow.location.hrefに依存するjsファイルがあります。私がKarmaを使ってテストを実行しているとき、デフォルトのURLはwww.localhost:3123/context.htmlです。 url/add paramatersを変更したり、この特定のテストスイートのカスタムURLを使用するようにカルマに言うことは可能ですか?Mocha/Karmaスタックのwindow.location.hrefを変更する

//JS file has 
function populate(){ 
    var url = new URL(window.location.href); 
    -- check if the url have parameter, lets say carInfo 
    -- if has then dispatches an event 
} 

//Mocha test 
describe('...', function() { 
    it ('...', function() { 
     -- call populate() 
     -- listen if the event was triggered 
    }) 
}) 

答えて

1

一般的に、テストでこれらの依存関係を交換できるように、コード内の依存関係を分離しようとします。この背景にあるコンセプトは、反転制御と呼ばれています。また、依存性注入を考慮に入れることもできます。あなたの具体的なケースwindow.location.href

は、Node.jsの中のテストか何かを実行しているときに存在していない特殊な環境、ブラウザ、に固有の依存関係です

すなわち

function populate(url){ 
    // trigger the event... 
} 

describe('...', function() { 
    it ('...', function() { 
     populate(new URL("http://...") 
     // listen if the event was triggered 
    }) 

})

関連する問題