Я издеваюсь над выставкой и модулем Permissions, но при вызове Permissions.AskAsync Permissions не определено.
Проблема выглядит следующим образом. Использование Jest для имитации именованного импорта
Использовал предоставленный ответ, но не работал.
Я издевался над аксио, который работает. Делать то же самое для модуля экспо не работает.
Функция, которую я хочу проверить:
checkPermission = async () => {
const {statusCamera} = await Permissions.askAsync(Permissions.CAMERA);
// console.log(statusCamera);
this.setState({cameraPermission: statusCamera});
const {statusCameraRoll} = await Permissions.askAsync(Permissions.CAMERA_ROLL);
this.setState({cameraRollPermission: statusCameraRoll});
};
Тест:
describe("Test the Permission function", () => {
it('should return rejected permission.', async function () {
const wrapper = shallow(<Photo2/>);
const instance = wrapper.instance();
await instance.checkPermission();
expect(instance.state("cameraPermission")).toBeFalsy();
});
});
Макет, который я использую для выставки:
jest.mock('expo', ()=>({
Permissions: {
askAsync: jest.fn()
}
}))
и попробовал
(В файле издевается / expo.js)
export default {
Permissions: {
askAsync: jest.fn(() => {
return "SOMETHING"
})
}
}
и попробовал
(В файле издевается / expo.js)
jest.mock('expo', ()=>({
Permissions: {
askAsync: jest.fn()
}
}));
Ошибка: «Ошибка типа: невозможно прочитать свойство 'askAsync' из неопределенного"
Эта ошибка возникает в строке, где вызывается Permissions.askAsyc
. Таким образом, разрешения не определены. (Также проверил это с console.log(Permissions)
Я ожидал, что instance.state("cameraPermission")
будет ложным, но он падает до того, как достигнет этой линии.