2016-06-08 4 views
0

Я пытаюсь проверить среагировать компонент, здесь тестJest Неудачный тест с React компонент

jest.dontMock('../js/components/Navigation.js'); 
var React = require('react/addons'); 
var Navigation = require('../js/components/Navigation.js'); 
var Router = require('react-router').Router; 
var Route = require('react-router').Route; 
var Link = require('react-router').Link; 
TestUtils = React.addons.TestUtils; 

describe('Navigation', function() { 

var NavElement = TestUtils.renderIntoDocument(
    <Navigation items={['nav1', 'nav2', 'nav3']} /> 
); 

    var items = TestUtils.scryRenderedDOMComponentsWithTag(NavElement, 'li'); 


    it('renders each item as a li', function() { 
    expect(items.length).toEqual(3); 


    }); 


}); 

Вот компонент

var React = require('react'); 
var Router = require('react-router').Router; 
var Link = require('react-router').Link; 
var RouteHandler = require('react-router').RouteHandler;  

var Navigation = React.createClass({ 
    render: function() { 
     return (
      <div> 
      <header> 
      <ul> 
      <li><Link to="nav1">nav1</Link></li> 
      <li><Link to="nav2">nav2</Link></li> 
      <li><Link to="nav3">nav3</Link></li> 
      </ul> 
      </header> 
      <RouteHandler /> 
      </div> 
      ); 
     } 
    }); 

Когда я бегу «тест НПМ» Я получаю после arning и error Warning: React.createElement: тип не должен быть пустым, неопределенным, логическим или числом. Он должен быть строкой (для элементов DOM) или ReactClass (для составных компонентов).

- Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. 

Что мне не хватает?

Я попытался удалить и resintsalling узел модули также пытались импортировать в

var Navigation = require('../js/components/Navigation.js').default; 

И используя

modules.export = Navigation; 

ответ

0

ли

module.exports = App; 

часть ваш компонент?

Похоже, вы не импортировали его правильно

Кроме того, необходимо импортировать LinkRouteHandler и компонентов внутри файла компонента, прямо под тем, где вы импортировать React.

+0

По-прежнему получает ту же ошибку после ее добавления. Чтобы уточнить, я добавил его в конец файла –

+0

Теперь просто убедитесь, что вы включили его следующим образом: 'var Navigation = require ('../ js/components/Navigation.js');' – Grgur

+0

по-прежнему точно такая же ошибка –