是的,萬一你想知道。與Chrome Apps的CSP限制條件沒有衝突,這也適用於Derick Bailey的Jasmine.Async(https://github.com/derickbailey/jasmine.async)。茉莉花是否適用於Chrome應用程序?
我以正常方式設置測試,對Chrome應用程序環境完全沒有任何不同之處。揭開序幕的測試中,我用這個功能,基於傳統的茉莉花,調用例子:
function jasmine_run() {
var jasmineEnv = jasmine.getEnv();
jasmineEnv.updateInterval = 1000;
var htmlReporter = new jasmine.HtmlReporter();
jasmineEnv.addReporter(htmlReporter);
jasmineEnv.specFilter = function(spec) {
return htmlReporter.specFilter(spec);
};
jasmineEnv.execute();
}
一個問題我沒有解決,因爲我不關心它,是沒有任何聯繫的在輸出中(用於運行單個測試等)工作,因爲Chrome Apps中沒有導航。但是,這絕不影響測試本身,只是HTML顯示的一個功能。
幾乎一切都值得做的是在我的應用程序異步完成,但Jasmine.Async處理是很清楚,在這個例子中(Facebook的模塊是我自己):
describe('Facebook',
function() {
var async = new AsyncSpec(this);
async.it("authorizes",
function(done) {
Facebook.authorize(
function(success) {
expect(success).toBeTruthy();
done();
}
);
}
);
async.it("searches",
function(done) {
Facebook.call("search?q=" + encodeURIComponent('Adolfo') +
"&type=user&fields=picture,gender,id,name,updated_time,username",
function (result) {
expect(result.data.length > 0).toBeTruthy();
expect(result.data[0].username).not.toBeNull();
done();
}
);
}
);
}
);
我沒有檢查查看Jasmine是否適用於Chrome擴展程序,因爲我不寫擴展名。
我不明白爲什麼測試頁面將允許導航工作,除非它是沙箱,這意味着無法訪問Chrome API。我想單元測試的代碼使用這些API。我錯過了什麼嗎? –
好的。我的意思是你在應用程序之外運行頁面(即在瀏覽器中),但是這意味着你不能使用chrome API,你只是測試你的應用程序邏輯。 –