React Native의 질문에서 설명한 것과 같은 테스트를 실행할 수 있습니다./
import { configure, shallow, render, mount } from 'enzyme'
import Adapter from 'enzyme-adapter-react-16'
configure({ adapter: new Adapter() })
// enzyme
global.shallow = shallow
global.render = render
global.mount = mount
예 구성 요소 jestSetup.js
package.json
"scripts": {
...
"test": "node_modules/jest/bin/jest.js",
}
"devDependencies": {
...
"enzyme": "^3.1.0",
"enzyme-adapter-react-16": "^1.0.1",
"enzyme-to-json": "^3.1.2",
"jest": "^21.2.1",
"jest-enzyme": "^4.0.0",
"jest-expo": "~21.0.0",
}
"jest": {
"preset": "jest-expo",
"setupFiles": [
"./test/jestSetup.js"
],
"snapshotSerializers": [
"./node_modules/enzyme-to-json/serializer"
]
}
시험 :
import React from 'react'
import { Button } from 'react-native'
const CancelButton = (props) =>
<Button
{ ...props }
onPress={() => { props.navigation.goBack() } }
title="Cancel"
/>
export { CancelButton }
예 테스트
import React from 'react'
import { CancelButton } from '../CancelButton'
test('onPress',() => {
const goBackFunc = jest.fn()
const navigation = {
goBack: goBackFunc,
}
const component = shallow(
<CancelButton
navigation={ navigation }
/>
)
component.simulate('press')
expect(goBackFunc).toHaveBeenCalled()
})
여기 내 구성입니다
.`작동한다 babelrc이
{
"presets": ["babel-preset-expo"],
"env": {
"development": {
"plugins": ["transform-react-jsx-source"]
}
}
}
.dive()
을했다. –효소'mount'가 React-Native에서 작동하지 않는 것처럼 보이고'shallow'를 사용하고 싶지 않습니다. 'ReferenceError : 문서가 정의되지 않았습니다. ' – alexmngn
어떤 종류의 이벤트를 테스트하려고합니까? 그것은'국가'를 바꾸는가? 또는 정확히 무엇을 테스트하려고합니까? 그 주변의 세부 정보가 도움이 될 수 있습니다. –