是的,万一你想知道。与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,你只是测试你的应用程序逻辑。 –