开发者问题收集

如何模拟 Cypress 中的图像响应

2021-05-31
5036

我的问题

我试图使用 cy.intercept 模拟来自服务器的包含图像的响应,但是浏览器 不会显示 我模拟的图​​像。浏览器无法将我的响应解释为 <img> 标签的正确图像。

debug tools screenshot

我仍然可以在调试工具中复制响应,它似乎是我需要的图像,但可能编码方式错误。

我的方法

    cy.readFile('src/assets/logo.png', 'binary').then((imgContent) => {
      cy.intercept('/uploads/test.png', {
        headers: { 'Content-Type': 'image/jpg' },
        body: imgContent,
      })
    });

我也尝试过返回这样的 base64 图像字符串:

    cy.intercept(
      '/uploads/test.png',
      {
        headers: {"Content-Type": "image/jpg"},
        body:
      'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAARCUlEQVR4Xu1deXQURRr...

但效果不太好。

1个回答

这看起来像是一个 fixture

cy.intercept("/uploads/test.png", { fixture: "logo.png" })
的工作>

默认情况下,您会将 logo.png 文件放入 cypress/fixtures 目录中,但是您可以 将其配置为使用其他位置

Phil
2021-05-31