Testcafe TypeError: Cannot read property 'response' of undefined

Testcafe TypeError: Cannot read property 'response' of undefined

对于 Testcafe 来说还是个新手,我构建了一个记录器和 loggerResponseBody 函数。但是当 运行 测试时,它给了我打字错误。还有一段时间以前的测试。
logger和loggerResponseBody的代码:(logger和loggerResponseBody在不同的文件中)

import { RequestLogger } from 'testcafe'

import { BASE_URL } from '../consts/generic'

export const logger = (endpoint, method = 'GET') =>
  RequestLogger(
    { url: `${BASE_URL}/api/v1/${endpoint}/`, method },
    {
      logResponseHeaders: true,
      logResponseBody: true
    }
  )

export const loggerResponseBody = (logger, requestNumber = 0) =>
  JSON.parse(logger.requests[requestNumber].response.body.toString())

给出错误:

   1) TypeError: Cannot read property 'response' of undefined

      Browser: Chrome 85.0.4183 / Linux 0.0.0

         10 |      logResponseBody: true
         11 |    }
         12 |  )
         13 |
         14 |export const loggerResponseBody = (logger, requestNumber = 0) =>
       > 15 |  JSON.parse(logger.requests[requestNumber].response.body.toString())
         16 |

您似乎在服务器响应之前记录了请求。您可以通过执行

等待响应

await t.expect(logger.contains(r => r.response.statusCode === 200)).ok();

RequestLogger.containsRequestLogger.count 使用 Smart Assertion Query Mechanism 确保收到响应。

有关记录 HTTP 请求的详细信息,请参阅 Intercept HTTP Requests

如果这不能解决问题,请附上您的测试代码,以便我们确定其原因。