はい、ご参考までに。Chrome アプリの CSP 制限との競合はありません。これは、Derick Bailey の Jasmine.Async ( https://github.com/derickbailey/jasmine.async ) にも当てはまります。
通常の方法でテストをセットアップし、Chrome アプリ環境とまったく異なることはしません。テストを開始するために、従来の Jasmine 呼び出しの例に基づいて、この関数を使用しました。
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();
}
気にしなかったために解決しなかった問題の 1 つは、Chrome アプリにナビゲーションがないため、出力内のリンク (とりわけ、個々のテストを実行するために使用される) が機能しないことです。ただし、これはテスト自体にはまったく影響せず、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 拡張機能で動作するかどうかは確認しませんでした。