2011-09-13 11 views
1

私は新しいプロジェクト(Firefoxアドオン)を開始しています。私はビヘイビアドリブン開発を試してみたいと思います。私は特にJasmine BDDライブラリが好きです。しかし、私は、アドオンSDKでJasmineなどのフレームワークを使用する良い方法を見つけることができません。MozillaアドオンSDKでサードパーティのJSライブラリを使用する

ジャスミンは、グローバルオブジェクトにsetTimeout(および類似の)関数を指定する必要がありますが、アドオンSDKは「タイマー」モジュールを使用するものをエクスポートします。しかし、私はJasmineを "タイマー"からオブジェクトを取得するために微調整する(またはタイマーによってエクスポートされたメソッドをグローバルオブジェクトに追加する)としましょう。

大きな問題は、実際にテストを実行する方法がわからないことです。 SDKによって生成されたテストディレクトリがありますが、出力を見るためのウィンドウやドキュメントオブジェクトはありません(そして、私は本当に素晴らしいHTML出力を見たいと思います)。私は、ページを変更するコンテンツスクリプトを作成することができたと思うが、私はバックグラウンドスクリプトにアクセス(テスト)できない。

これまでにこれまで直面したことはありますか?それに対処する方法はありますか?

ありがとうございます! トーマス

答えて

0

あなたには、あなたのテストを実行するには、新しいウィンドウを開くためにAdd-on SDK windows APIを使用することができます。あなたがの範囲に好きにsubscript loaderと窓や原稿をセットしてジャスミンスクリプト(複数可)をロードすることができるはずですその添字:

var windows = require("windows").browserWindows; 

windows.open({ 
    url: "about:blank", 
    onOpen: function(window) { 
    var script; 
     var scriptLoader = Cc["@mozilla.org/moz/jssubscript-loader;1"]. 
     getService(Ci.mozIJSSubScriptLoader); 
     scriptLoader.loadSubScript(subscriptSpec, script); 
     script["window"] = window; 
     script["document"] = window.document; 
     // ... run your tests here by calling script.someFunc() ... 
    } 
}); 

更新:さらなる研究がbrowserWindowsが実際にあなたがコンテンツウィンドウへのアクセスを与えていない特殊なラッパーであることを示しています。 hidden frameからウィンドウ/ドキュメントを取得してみてください。これが、特権コードからHTML文書にアクセスするための唯一の方法です。

関連する問題