2017-02-20 41 views
0

Я пытаюсь проверить, вызвана ли функция в крючке componentDidMount моего компонента.Функция тестового теста React-Native вызывается в компонентеDidMount

Я использую React-Native и Jest для тестирования моего компонента.

компонент выглядит следующим образом:

const tracker = new GoogleAnalyticsTracker('UA-79731-33'); 
class MyComponent extends Component { 
    componentDidMount() { 
     tracker.trackScreenView(this.props.title); 
    } 
} 

Так что я насмешливый GoogleAnalyticsTracker, она выглядит хорошо. Хотя я не уверен, как я могу проверить, что он был вызван в крюке componentDidMount.

Это мой тест, который не работает:

import 'react-native'; 
import React from 'react'; 
import renderer from 'react-test-renderer'; 
import { GoogleAnalyticsTracker } from 'react-native-google-analytics-bridge'; 

import MyComponent from '../'; 

jest.mock('react-native-google-analytics-bridge'); 
const tracker = new GoogleAnalyticsTracker('ABC-123'); 

describe('MyComponent',() => { 
    it('renders',() => { 
     const tree = renderer.create(
      <MyComponent />, 
     ).toJSON(); 
     expect(tree).toMatchSnapshot(); 
     expect(tracker.trackScreenView).toBeCalled(); 
    }); 
}); 

The toBeCalled() возвращает ложь.

Как проверить, что моя функция была вызвана в componentDidMount?

Благодаря

ответ

0

Тест реагирует воспроизведен только вызывает метод визуализации компоненты и возвращает результат, он на самом деле не запустить компонент и поэтому все методы жизненного цикла не называется. Вам следует переключиться на фермент-рендеринг, который поддерживает полный запуск компонентов, используя enzyme.mount