[英]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.