#reactjs #jestjs #enzyme
#reactjs #jestjs #фермент
Вопрос:
Я пишу тестовые примеры с использованием enzyme и jest of для компонента React. Определение моего компонента react выглядит следующим образом
class MyComponent extends React.Component {
// some code here
showModalandSetValues () {
//some code here
this.confirmModal.setFormValues (values);
}
render (){
const {val1 , val2} = this.props
return <div>
// some more markup
<MyForm>
<MyModal ref = {ref => this.confirmModal = ref}} />
</MyForm>
</div>
}
}
export default MyComponent
Я использую неглубокий метод фермента. Как я могу установить значение this.confirmModal в test? Оно устанавливается только с помощью метода render . Любезный совет.
Ответ №1:
они говорят, что ссылки не установлены в shallow()
.
Вы можете использовать mount()
, но фиктивные подкомпоненты для достижения полуплоскостного рендеринга:
import MyModal from '../some/path/MyModal.js'; // to be able to .find(MyModal)
// modal is rendered as a span
jest.mock('../some/path/MyModal.js', () => (props) => <span {...props} />);
...
const wrapper = mount(<MyComponent />);