Javascript 如何测试使用浏览器API的代码
我正在使用节点运行单元测试 我有一个JavaScript模块在我想测试的浏览器中运行 我的代码是“同构的”,即它避免了节点中不可用的语言功能,如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,但是: 这
export
s
但它使用纯浏览器API:XMLHttpRequest
、FormData
和File
我找到了每个节点的实现。
但是
XMLHttpRequest
之一不支持上传
因此,我正在寻找在具有这些API的环境中对代码进行单元测试的最简单方法。代码不需要DOM或其他浏览器API,“只需要”这三个 我已经在其他需求中使用了PhantomJS,但是:
- 这将创建另一个测试工作流(小问题)
- 它支持较旧的JavaScript版本,并将强制对代码进行完全重写以进行测试(主要问题)
- 代码有很多NPM依赖项,它们可能不兼容(阻塞问题)
还有哪些替代方案可用?这不是测试在浏览器中运行的代码的方式。如果它在浏览器中运行,则需要在浏览器中进行测试
您需要研究基于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。感谢您的建议,如果需要,我将使用它。:-)