Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.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
Javascript 如何测试使用浏览器API的代码_Javascript_Node.js_Unit Testing_Phantomjs_Casperjs - Fatal编程技术网

Javascript 如何测试使用浏览器API的代码

Javascript 如何测试使用浏览器API的代码,javascript,node.js,unit-testing,phantomjs,casperjs,Javascript,Node.js,Unit Testing,Phantomjs,Casperjs,我正在使用节点运行单元测试 我有一个JavaScript模块在我想测试的浏览器中运行 我的代码是“同构的”,即它避免了节点中不可用的语言功能,如exports 但它使用纯浏览器API:XMLHttpRequest、FormData和File 我找到了每个节点的实现。 但是XMLHttpRequest之一不支持上传 因此,我正在寻找在具有这些API的环境中对代码进行单元测试的最简单方法。 代码不需要DOM或其他浏览器API,“只需要”这三个 我已经在其他需求中使用了PhantomJS,但是: 这

我正在使用节点运行单元测试

我有一个JavaScript模块在我想测试的浏览器中运行

我的代码是“同构的”,即它避免了节点中不可用的语言功能,如
export
s

但它使用纯浏览器API:
XMLHttpRequest
FormData
File

我找到了每个节点的实现。
但是
XMLHttpRequest
之一不支持上传

因此,我正在寻找在具有这些API的环境中对代码进行单元测试的最简单方法。
代码不需要DOM或其他浏览器API,“只需要”这三个

我已经在其他需求中使用了PhantomJS,但是:

  • 这将创建另一个测试工作流(小问题)
  • 它支持较旧的JavaScript版本,并将强制对代码进行完全重写以进行测试(主要问题)
  • 代码有很多NPM依赖项,它们可能不兼容(阻塞问题)
由于代码是浏览系列化的所有这些问题可能会消失,但在继续这样做之前,我想确定一下

是否有机会让它与PhantomJSCasperJS或类似产品一起工作


还有哪些替代方案可用?

这不是测试在浏览器中运行的代码的方式。如果它在浏览器中运行,则需要在浏览器中进行测试


您需要研究基于webdriver规范的解决方案。这个生态系统中最大的毛茸茸的怪物是Selenium。我目前正在研究这个主题,因为我们在使用selenium服务器时遇到了一些问题。你也应该看看夜表和铅脚。Webdriver.io是很多人推荐的第一个建议,因为它是一个基于节点的客户端,对Selenium的包装(很差)。但是文档到处都是,我们经常在使用它时遇到错误。

这不是测试在浏览器中运行的代码的方式。如果它在浏览器中运行,则需要在浏览器中进行测试


您需要研究基于webdriver规范的解决方案。这个生态系统中最大的毛茸茸的怪物是Selenium。我目前正在研究这个主题,因为我们在使用selenium服务器时遇到了一些问题。你也应该看看夜表和铅脚。Webdriver.io是很多人推荐的第一个建议,因为它是一个基于节点的客户端,对Selenium的包装(很差)。但是文档到处都是,我们在使用它时经常遇到错误。

谢谢你的回答+1我同意,要100%测试此代码的行为,它应该在浏览器中运行。但在节点中进行测试要容易得多,以掌握99%的bug,这是我对大多数代码所做的。我将检查WebDriver.io,因为它似乎最符合我的需要。:-)我建议你去看夜班。我们已经使用webdriver.io几个月了,它经常出现问题。目前正在计划切换到NW。感谢您的建议,如果需要,我将使用它。:-)谢谢你的回答+1我同意,要100%测试此代码的行为,它应该在浏览器中运行。但在节点中进行测试要容易得多,以掌握99%的bug,这是我对大多数代码所做的。我将检查WebDriver.io,因为它似乎最符合我的需要。:-)我建议你去看夜班。我们已经使用webdriver.io几个月了,它经常出现问题。目前正在计划切换到NW。感谢您的建议,如果需要,我将使用它。:-)