10

我想使用 Phantomjs 和 Jasmine 对 javascript 进行单元测试。Phantomjs 的网站建议我使用单独的东西来处理这个问题,特别是 PhantomJasmine。我下载了 PhantomJasmine 并运行了这个例子。一切都很顺利。然后我将该行添加var system = require('system');到 example_spec.js 的顶部。当我尝试运行我得到“ReferenceError:找不到变量:需要”的示例时,Phantomjs 现在会引发错误。所以,我想做一些事情,比如启动浏览器,但看起来我不能结合 jasmine 和 phantomjs 语法。我只能使用 Phantomjs 运行纯 jasmin。如何在同一个文件中同时使用两者?喜欢:

console.log('Loading a web page');
var page = new WebPage();
var url = "http://www.phantomjs.org/";
page.open(url, function (status) {
    //Page is loaded!
    describe("A suite", function() {
      it("contains spec with an expectation", function() {
        expect(true).toBe(true);
      });
    });
    phantom.exit();
});
4

1 回答 1

4

这不是你应该如何使用它。控制 phantomjs 的代码不应与 jasmine 规范混淆,反之亦然。

您应该将您的规范分成 .js 文件,并使用 HTML 规范运行程序创建标准 jasmine 设置,该运行程序加载规范 .js 文件并在 phantomjs 中打开该 HTML 文件。

另一种解决方案是使用带有 phantomjs 和 jasmine 的 grunt 来自动运行 jasmine 规范。

https://github.com/cowboy/grunt
https://github.com/creynders/grunt-jasmine-task

于 2012-08-10T12:54:05.583 回答