我在 React.JS 中的測驗有問題。我的組件掃描 QR 碼影像,我使用此依賴項:https ://www.npmjs.com/package/qr-scanner版本為 1.4.1
這是我的測驗
describe("BarcodeScanner", () => {
it("can scan qr code image", async () => {
const handleOnScan = jest.fn();
render(<BarcodeScanner image={image} onScan={handleOnScan} />);
expect(await handleOnScan).toHaveBeenCalled();
});
});
我傳遞了帶有 qr 碼的影像的道具影像,并傳遞了作為笑話的函式的 onScan。掃描影像后必須呼叫此函式。
這是我的組件:
const scanImage = (image: string) => {
QrScanner.scanImage(image,{
returnDetailedScanResult: true
})
.then((result) => {
onScan(result.data);
})
.catch((error) => {
if (onError) {
onError(error || "No QR code found");
}
});
};
我的測驗沒有通過,因為 jest 函式沒有被呼叫。 測驗結果
uj5u.com熱心網友回復:
你有一個不正確的模擬onScan,你沒有等待結果。該動作在下一個“滴答”中解決,而不是立即解決。我認為這應該有效(未經測驗)
describe('BarcodeScanner', () => {
it('can scan qr code', async () => {
const handleOnScan = jest.fn();
render(<BarcodeScanner image={image} onScan={handleOnScan} />);
await waitFor(() => expect(handleOnScan).toHaveBeenCalled());
});
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/437406.html
標籤:javascript 反应 单元测试 异步 开玩笑的
下一篇:了解如何使存盤庫查詢異步
