我正在尝试对我的一个react原生组件进行单元测试。一个场景需要我模拟expo-camera
requestCameraPermissionsAsync()方法,但不知道如何进行。我试图做的是模拟状态始终具有granted
值。
初始方法,如下:
jest.mock('expo-camera', () => {
const PermissionsCamera = jest.requireActual('expo-camera');
return {
...PermissionsCamera,
requestCameraPermissionsAsync: () =>
new Promise(resolve => resolve({granted: true, status: 'granted'})),
};
});
但是这不起作用。需要帮助,上面的代码有什么问题吗?谢谢
更新:我如何在组件中实现:
import {Camera} from 'expo-camera'
useEffect(() => {
(async () => {
const {status} = await Camera.requestCameraPermissionsAsync();
// additional logic when status is equal to 'granted'
})();
}, []);
1条答案
按热度按时间xam8gpfp1#
2023年答案
我和你一样在挣扎,然后我意识到
Camera.requestPermissionsAsync()
已经过时了。我最终使用了钩子useCameraPermissions
并使用最新版本的
expo
和jest-expo