首页 > 解决方案 > 如何测试已被调用或未调用的函数

问题描述

这是我的示例代码,这里我需要在组件挂载后测试regenerate功能,并且我需要确保qrCodeUrl是否已针对Qrcode组件进行了更改

export function Component() { 
 const [qrCode, setQrCode] = useState("initialUrl");

const regenerate = () => {
   getUrl = ApiCall;
   serQrCode(getUrl);
}

useEffect(() => {
  const regenerate = async () => {
    const qrCodeUrl = await someCall();
    setQrCode(qrCodeUrl);
  };
  regenerate(); 
}, [])

return (
   <View testID="qrCodeWrapper">
     <Qrcode url={qrCode} />
   </View>
)

}

这是我的测试文件

test("Has to ensure that QR code is refreshed", async () => {
    const { environment, getByTestId } = render(Component);
    await resolveMostRecentOperation<ComponentQuery>(environment);
    const qrCodeWrapper = getByTestId("qrCodeWrapper");
    expect(qrCodeWrapper.props.children).toBeDefined();
    expect(qrCodeWrapper.props.children.props.url).toBe(`${appConfig.baseUrl}snapshot/initialUrl`);
  });

此测试运行良好,但在组件安装后我无法获取更新的url,它总是显示initialUrl

lang: react-native, jest, @testing-library/react-native

标签: typescriptreact-nativejestjs

解决方案


推荐阅读