Unit testing 如何用笑话模拟远程网站对单元测试木偶程序代码的响应?
我正在为一个网站实现一个网页抓取脚本,它将收集一些有用的信息 脚本使用Puppeter库实现,基本上是一组指令,如:Unit testing 如何用笑话模拟远程网站对单元测试木偶程序代码的响应?,unit-testing,jestjs,puppeteer,Unit Testing,Jestjs,Puppeteer,我正在为一个网站实现一个网页抓取脚本,它将收集一些有用的信息 脚本使用Puppeter库实现,基本上是一组指令,如: 开始无头镀铬 打开新选项卡/页面 从HTML获取一些分页链接 打开找到的每个分页链接,并从HTML中提取一些信息 我正在寻找一些测试此功能的方法。理想情况下,我想做的是在测试文件夹中“预保存”真实的HTML响应,然后模拟外部网站响应(确保它们始终相同)。然后断言收集的信息是正确的 我熟悉几种能够在浏览器中模拟fetch函数端点的工具。我在找一些类似的东西,不过是木偶演员 到目前为
fetch
函数端点的工具。我在找一些类似的东西,不过是木偶演员
到目前为止,我考虑的唯一解决方案是使用browser
实例作为脚本的依赖项。然后模拟浏览器的newPage
方法返回带有自定义拦截器的页面。不过,这看起来需要做很多工作
还有其他解决方案吗?一个简单的解决方案是在本地存储要测试的HTML页面(或其部分),然后在Puppeter中打开它。这是可能的。然后可以在Javascript测试框架(如Mocha或Jest)中测试结果 如果您需要一个真正的web服务器进行测试,另一个选择是使用一个类似于本地HTML页面的库作为web服务器响应的模拟。你可以在这里找到一个例子,其中包含了各种搜索引擎的测试
还可以像
启动
、转到
和$eval
。这种方法需要很多存根方法。一个简单的解决方案是将要测试的HTML页面(或其中的一部分)存储在本地,然后在Puppeter中打开。这是可能的。然后可以在Javascript测试框架(如Mocha或Jest)中测试结果
如果您需要一个真正的web服务器进行测试,另一个选择是使用一个类似于本地HTML页面的库作为web服务器响应的模拟。你可以在这里找到一个例子,其中包含了各种搜索引擎的测试
还可以像
启动
、转到
和$eval
。这种方法需要很多存根方法。为什么要模拟传输层?为什么不将起始页URL作为输入,这样就可以将刮板指向本地服务器进行测试?为什么要模拟传输层?为什么不将起始页URL作为输入,这样您就可以将刮板指向本地服务器进行测试?