Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 浏览器中的单元测试_Unit Testing_Firefox Addon Sdk_Commonjs - Fatal编程技术网

Unit testing 浏览器中的单元测试

Unit testing 浏览器中的单元测试,unit-testing,firefox-addon-sdk,commonjs,Unit Testing,Firefox Addon Sdk,Commonjs,我更喜欢在浏览器中进行单元测试,因为我喜欢像mocha这样的测试框架 是否有一种在浏览器中运行附加sdk单元测试的简单方法 编辑:我不想做回归测试。例如,使用mocha,我可以创建如下HTML页面: <head> <title>Tests</title> <link rel="stylesheet" href="mocha.css" /> </head> <body> <script src="mocha.

我更喜欢在浏览器中进行单元测试,因为我喜欢像mocha这样的测试框架

是否有一种在浏览器中运行附加sdk单元测试的简单方法

编辑:我不想做回归测试。例如,使用mocha,我可以创建如下HTML页面:

<head>
  <title>Tests</title>
  <link rel="stylesheet" href="mocha.css" />
</head>
<body>
  <script src="mocha.js"></script>
  <script src="chai.js"></script>
  <script src="main-content.js"></script>
  <script>mocha.setup('bdd')</script>
  <script src="main-content-test.js"></script>
  <script>
    mocha.run();
  </script>
</body>
require('sdk/page-mod').PageMod({
  include: require('sdk/self').data.url('testpage.html'),
  contentScript: 'unsafeWindow.addon={on: self.port.on, emit: self.port.emit}',
  contentScriptWhen: 'start',
  onAttach: function(worker) {
    worker.port.on('test-1', function() {
      worker.port.emit('test-1', {})
    });
    // ...
  }
});

测验
摩卡咖啡设置(“bdd”)
mocha.run();
输出看起来像我上面链接的图片。这就是我所说的浏览器中的单元测试


编辑2:我正在尝试单元测试我的模块(使用require(“sdk/test”),而不是我的内容脚本。

没有一种预构建的方法来实现这一点,它需要一点jerry装配

除了页面之外,您还需要一个页面模组,如下所示:

<head>
  <title>Tests</title>
  <link rel="stylesheet" href="mocha.css" />
</head>
<body>
  <script src="mocha.js"></script>
  <script src="chai.js"></script>
  <script src="main-content.js"></script>
  <script>mocha.setup('bdd')</script>
  <script src="main-content-test.js"></script>
  <script>
    mocha.run();
  </script>
</body>
require('sdk/page-mod').PageMod({
  include: require('sdk/self').data.url('testpage.html'),
  contentScript: 'unsafeWindow.addon={on: self.port.on, emit: self.port.emit}',
  contentScriptWhen: 'start',
  onAttach: function(worker) {
    worker.port.on('test-1', function() {
      worker.port.emit('test-1', {})
    });
    // ...
  }
});
它将侦听测试事件、执行测试并将结果发回。然后您的测试页测试代码将侦听测试结果,如下所示:

function test() {
  addon.on('test-1', function(results) {
    //  loop through results and pass/fail
  });
  addon.emit('test-1');
}

几乎从定义上讲,浏览器测试不是单元测试。您可能指的是回归测试,在回归测试中,您可以收集一组测试并在一个框架中自动运行它们。您知道Selenium吗?@BobDalgleish前端Javascript通常在浏览器中进行单元测试。请参阅编辑。谢谢您的回答。如果我理解上述正确性,请参阅首先,它是用于测试内容脚本的。但是,我正在尝试以一种类似于mocha框架外观的方式对我的模块进行单元测试(使用
require(“sdk/test”)
)。我包含HTML页面只是为了表明在浏览器中可以进行单元测试。如果我有误解,请告诉我。