Тест Jest-Native проходит успешно, но не должен

В моем приложении React Native я пытаюсь выполнить модульное тестирование, если кнопка содержит заголовок "test". Для этого я используюreact-native-testing-library а также Jest/Jest-native.

Проблема в том, что даже если я даю кнопке "неправильный" заголовок, скажем "я неправильный заголовок", модульный тест выполняется успешно. Я попытался использовать разные сопоставители, чтобы переписать макеты компонентов, исключив возможность того, что NativeBase является проблемой, и искал повсюду в Google.

Вот компонент, который следует протестировать, LandingPage.js:

import React from 'react';
import {View, Text, Button, StyleSheet} from 'react-native';
import { withNavigation } from 'react-navigation';

class LandingPage extends React.Component {
  render() {
    return (
      <View>
        <Button testID="button" title='i am a title' />
      </View>
    );
  }
}

export default withNavigation(LandingPage);

И это испытание, LandingPage-test.js:

import React from 'react';
import {render} from 'react-native-testing-library';
import LandingPage from '../LandingPage';
import '@testing-library/jest-native/extend-expect';

jest.mock('react-navigation', () => ({
  withNavigation: Component => props => (
    <Component navigation={{navigate: jest.fn()}} {...props} />
  ),
}));

afterAll(() => {
  jest.restoreAllMocks();
});

describe('LandingPage', () => {
  it('contains a button with title test', () => {
    const {queryByTestId} = render(<LandingPage />);
    expect(queryByTestId('button')).toHaveProp('title', 'test');
  });
});

Несмотря на то, что в компоненте заголовок кнопки установлен на "я заголовок", но ожидается другой заголовок, тест все равно выполняется успешно:

Однако кажется, что второй аргумент toHavePropне имеет значения. Если я изменю первый аргумент на ложь, напримерexpect(queryByTestId('button')).toHaveProp('tiiiiiiiiiiitle', 'test');, модульный тест не проходит, и это правильно, поскольку button не имеет собственности tiiiiiiiiiiitle. Как сказано в документацииJest Native, можно "проверить, имеет ли атрибут определенное ожидаемое значение". Смотрите документацию здесь.

Для меня это загадка.

0 ответов

Другие вопросы по тегам