Хороший вопрос, есть разница, когда вы проверяете с помощью имитации, вы имитируете более реальный сценарий.
Кроме того, вы проверяете, что ваш компонент подключен правильно: например, учтите, что это ваш компонент:
const SpecialInput = ({onChange}) => (<input name />);
Этот компонент вообще не использует onChange
, ваш тест с использованием пропора пройдет, но в реальном сценарии он не будет работать, как ожидалось.
Кроме того, когда вы тестируете с использованием проп, это означает, что вы знаете о внутренней реализации компонента, поэтому, если в будущем вы захотите изменить реализацию, но не функциональность, которая вам понадобится изменить тест , который является запахом плохого теста.