Как имитировать функцию в шутке и энзиме - PullRequest
0 голосов
/ 09 мая 2020

Я хочу сделать тест, имитирующий функцию в моем компоненте реакции, например, у меня есть:

const app=()=>{

const [state,setState]=useState("");

const func=(item)=>{
   setState(item)
}

  return(
   <div>{state}<div/>
  )
}

, и я хочу протестировать эту функцию под названием «fun c» с помощью шутки и энзима для в этом примере у меня есть:

let wrapper=mount(<App/>)

test("testing",()=>{
   let item="test"
   //mock function -> func(item)
  // how to mock that function 
  }
)

может кто-нибудь помочь мне с синтаксисом?

1 Ответ

0 голосов
/ 09 мая 2020

Хотя вы можете отслеживать и имитировать результаты свойств методов в компонентах на основе классов, вы не можете использовать тот же подход для функциональных компонентов.

Что вам следует сделать, так это запустить или смоделировать конкретное поведение, которое вызывает метод func в ваших функциональных компонентах, а затем протестировать ожидаемое поведение (то есть, если вызывается метод props или изменения в элементах DOM , et c).

Если он запускается хуком useEffect(), вам нужно будет активировать этот хук, обновив реквизиты (используя setProps ), которые используются в массив зависимостей.

...