![](/img/trans.png)
[英]How to download a file with Node.js (without using third-party libraries)?
[英]Using third-party JS libraries in Mozilla Add-On SDK
我正在開始一個新項目(Firefox附加組件),我想嘗試使用行為驅動的開發。 我特別喜歡Jasmine BDD庫。 但是,我找不到在Add-On SDK中使用Jasmine之類的框架的好方法。
一個問題是Jasmine需要在全局對象上指定setTimeout(和類似的)函數,而Add-On SDK使用“ timers”模塊導出那些函數。 但是,假設我調整了Jasmine以從“計時器”中獲取那些對象(或將計時器導出的方法添加到全局對象中)。
更大的問題是我不知道如何實際運行測試。 SDK會生成一個測試目錄,但是,那里沒有窗口或文檔對象可以讓我看到輸出(而且我真的很想看到精美的HTML輸出)。 我想我可以創建一個內容腳本來修改頁面,但是后來我無法訪問(測試)后台腳本。
您以前曾經面對過嗎? 有什么建議的方法如何處理嗎?
謝謝! 托馬斯
您可以使用Add-on SDK Windows API打開一個新窗口以運行測試。您應該能夠使用下標加載器加載 Jasmine腳本,並將窗口和文檔設置為您希望的范圍。下標:
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() ...
}
});
更新:進一步的研究表明,瀏覽器Windows實際上是特殊的包裝,它們不能使您訪問內容窗口。 您可以嘗試從隱藏框架獲取窗口/文檔。 這是我看到的從特權代碼訪問HTML文檔的唯一方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.