Как проверить "состояние" изменений в стадии в шутку и фермент при моделировании? - PullRequest
0 голосов
/ 31 декабря 2018

Как мы проверяем изменения в переменной state на этапе, что означает, что я хочу проверить не конечный результат, а также результат между ними.

Ниже приведен код, который я хочу проверить.

onLogin = () => {
    this.setState({ isLoggingIn: true }, () => {
        try {
        } catch (err) {
          // Alert.alert(getString('ERROR'), err.message);
        } finally {
            this.setState({ isLoggingIn: false });
        }
    });
}

Ниже приведен мой тестовый код.

it('should call onLogin callback', () => {
    const spy = jest.spyOn(wrapper.instance(), 'onLogin');
    const loginBtn = wrapper.find('#login');
    loginBtn.props().onPress();
    expect(spy).toHaveBeenCalled();
    expect(wrapper.instance().state.isLoggingIn).toEqual(false);
    // Attempt => Below I've tried
    // wrapper.update();
    // expect(wrapper.instance().state.isLoggingIn).toEqual(true);
    // wrapper.update();
    // expect(wrapper.instance().state.isLoggingIn).toEqual(false);

wrapper.instance().state.isLoggingIn всегда ложно.Как мне отслеживать эти изменения на false, а затем true?

1 Ответ

0 голосов
/ 31 декабря 2018

Как мы проверяем изменения в переменной состояния

Мы не проверяем.Выполнение этого:

  1. сделает тесты менее поддерживаемыми
  2. жесткий код state структура в тестах: поэтому модульные тесты не пройдут, даже если все в порядке (больше ненужной работы)
  3. по-прежнему не позволяет нам быть уверенными, работает ли он вообще.

Просто протестируйте render() результат и взаимодействуйте со всем, что он возвращает.Таким образом, вы бы проверили, что действительно имеет значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...