在firefox-addon-sdk中的单元测试中加载测试页

时间:2015-02-03 14:45:31

标签: unit-testing firefox firefox-addon-sdk

我的附加组件涉及用户界面,因此为了测试它,我决定只是加载一个html页面,测试人员可以按照页面上的一些说明进行操作。

以下是加载页面的示例:

exports["test interaction"] = function(assert, done) {
  require("sdk/tabs").tabs.open({
    url: "./tests/test-page.html",
    onClose: function(tab) {
      assert.pass("Done page test");
      done();
  });
};

但是,大约16秒后,测试将始终失败,并显示两条错误消息:

fail:
Timed out (after: START)

fail:
Should not be any unexpected tabs open

此外,更重要的是,我的插件根本不能使用cfx test,而它在同一个测试页上使用cfx run

有没有办法使用cfx test加载一些HTML测试页?

2 个答案:

答案 0 :(得分:2)

在done()之前添加tab.close()将修复"不应该打开任何意外的标签"错误。

答案 1 :(得分:0)

我认为您需要做的是从您打开的标签中侦听消息,然后手动关闭标签。您可以通过将内容脚本注入选项卡并进行回传来发送消息。类似的东西:

  1. 页面已打开
  2. 页面运行一些测试,并在完成或错误时,通过window.postMessage将数据发送到内容脚本
  3. 内容脚本将这些结果中继回选项卡工作者
  4. 标签工作人员关闭标签