Jestjs Puppeter:存储和访问每页访问的上下文或元数据

Jestjs Puppeter:存储和访问每页访问的上下文或元数据,jestjs,puppeteer,jest-puppeteer,xstate,Jestjs,Puppeteer,Jest Puppeteer,Xstate,我正在尝试使用@xstate/test自动生成结果,并将其与木偶演员和笑话相结合。使用jest的beforeAll和aftereall钩子,我正在调用page.setRequestInterception,并注册一个回调来拦截网络请求并模拟它们的响应 XState生成我想要测试的路径,从每个路径我可以确定测试是否想要测试API失败或成功时应该发生的事情。我被困在如何正确地与Puppeter通信并在我的请求处理程序中访问该信息的问题上。我发现的一个选项是使用查询参数。传递给事件处理程序的请求对象可

我正在尝试使用
@xstate/test
自动生成结果,并将其与木偶演员和笑话相结合。使用jest的beforeAll和aftereall钩子,我正在调用
page.setRequestInterception
,并注册一个回调来拦截网络请求并模拟它们的响应


XState生成我想要测试的路径,从每个路径我可以确定测试是否想要测试API失败或成功时应该发生的事情。我被困在如何正确地与Puppeter通信并在我的请求处理程序中访问该信息的问题上。

我发现的一个选项是使用查询参数。传递给事件处理程序的
请求
对象可以访问发出请求的帧

在我的测试中:

it(..., async () => {
  await page.goto('http://localhost:3000?failApi=true')
  ..
在我的请求处理程序中:

page.on('request', req => {
   // check req.frame.url() here and make choices
...

我目前通过更新文件/模块顶部本地声明的可变变量来解决这个问题,但感觉不太对劲。如果jest决定不按照声明的顺序运行测试,它将中断。