簡體   English   中英

如何攔截和存根 rpc 調用的響應以與 cypress 反應

[英]how intercept and stub the response of a rpc call in react with cypress

我想在我的反應應用程序中攔截我對 api 進行的 rpc 調用。 我正在使用一個自定義鈎子,它接收緩沖區和我想要調用的 rpc 方法並返回數據(類似於 react-query useQuery 鈎子)。

問題是因為是一個 rpc 調用,我請求的請求 url 都是相同的,響應是二進制的,我無法區分請求並攔截一個存根。

進行 rpc 調用的一個示例:

const {response, loading, error} = useRpc({
   Buffer: GetUser,
   Request: GetUserRequest
});

您可以簡單地檢查請求中的某個值,以將其與其他請求區分開來。 請求正文和標頭通常是開始的好地方。 此外,如果您需要等待特定的調用, 您可以使用req.alias有條件地分配別名。

cy.intercept('/foo', (req) => {
  if (req.body.bar === true) { // or whatever logic indicates the call you want to intercept
    req.alias = 'baz'; // conditionally assign alias
    req.reply({foo: 'bar'}); // mock response
  } else {
    req.continue(); // do not mock response
  }
});

cy.get('something')
  .click()
  .wait('@baz'); // waits for your specific 'baz' call to happen.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM