Jasmine 是否适用于 Chrome 应用

Does Jasmine work with Chrome Apps?

本文关键字:应用 Chrome 适用于 是否 Jasmine      更新时间:2023-09-26

是的,如果你想知道的话。与Chrome Apps的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();
}

我没有解决的一个问题是,因为我不关心它,输出中的任何链接(用于运行单个测试等)都不起作用,因为 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扩展程序,因为我不编写扩展程序。

添加一些信息作为答案,因为问题已经回答了。

前段时间我在应用程序开发中使用了Jasmine,没有任何问题。但是,我处理它的方法略有不同,这意味着我的输出确实正确打开。

我没有在普通应用程序中运行测试,而是创建了一个用于运行茉莉花测试的测试页面。由于应用的逻辑(由于 CSP)与 HTML 文件是分开的,因此这应该始终是可能的,并且更容易将测试代码与应用程序逻辑分开。