Как я могу сделать тест в реакции с шуткой?

В вашем getHttpsRequests вы передаете аргумент https, который переопределит родителя https. Удалите аргумент https из вашей функции,

module.exports = function getHttpsRequests (){

    https.get('google.com', function (res) {
        console.log("statusCode: ", res.statusCode);
        console.log("headers: ", res.headers);

       res.on('data', function (d) {
            process.stdout.write(d);
        });

    }).on('error', function (e) {
        console.error(e);
    });
}
0
задан skyboyer 20 January 2019 в 11:48
поделиться

2 ответа

Все зависит от ваших намерений с тестами. если вы хотите просто что-то простое, чтобы следить за тем, как выглядят ваши компоненты, и какую-то простую логику, тогда вы можете продолжить свой текущий способ обработки рендеринга и тестирования некоторой комбинации реквизита.

Другой способ - сделать все приложение, в котором вы можете тестировать, как в реальном браузере, и вы можете делать больше вещей, как это делают конечные пользователи. Эту я обычно предпочитаю, но для запуска требуется больше времени. Этому тоже понадобится JSDom. вы можете сослаться на https://airbnb.io/enzyme/docs/guides/jsdom.html , они очень хорошо документировали все различия между мелким, рендерингом и монтированием

Метод rest это монтировать, монтирование немного выше, чем мелкое и проще, чем рендеринг, и вы можете использовать его, когда хотите протестировать componentdidmount.

0
ответ дан duc mai 20 January 2019 в 11:48
поделиться

Я предполагаю, что основной вопрос о переходе состояния в компонент во время тестирования.

1118 Вы можете сделать это? Да, но по-другому. Точно так же, как вы делаете в plain React, вы не можете создать компонент (это делает shallow(<...>)) проходное состояние. Здесь играют только реквизиты. Но есть метод .setState() , так что вы можете создать элемент и состояние прохождения следующей строки в:

const wrapper = shallow(<ScreensLogin {...props}/>)
wrapper.setState(state);

Вам это нужно? Я верю, что нет. Я уверен, что вам нужно общаться с тестируемым компонентом точно так же, как вы работаете с ними в браузере:

  1. передавая различные реквизиты
  2. явно вызывая обратные вызовы реквизитов o0r ([113 ] действует так же, как wrapper.props().onClick({/*event mocked*/}))
  3. проверка render() результата

Почему так? 1. установка state напрямую ничего не говорит, если возможно получить такое состояние в дикой природе (скажем, вы можете пропустить, что свойство какого-то состояния используется в render, но никогда не изменяется ни одним из методов) 2. было бы сложнее сохраняйте актуальность тестов: наряду с любыми изменениями во внешнем интерфейсе компонентов (props) вам необходимо выровнять его внутренние компоненты (state) 3. и, наконец, будет легко перейти в противоречивое состояние, которого вы никогда не получите, взаимодействуя через props. ]

0
ответ дан skyboyer 20 January 2019 в 11:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: