2016-04-23 103 views
1

我正在尝试使用Jest编写测试用于React。不过,我发现了以下错误:反应Jest测试失败 - type.toUpperCase不是函数

TypeError: type.toUpperCase is not a function

阵营(images.js):

import React, { Component } from 'react'; 

export class Images extends Component { 
    render() { 
     return (
      <div class="images"> 

      </div> 
     ); 
    } 
} 

测试(玩笑):

jest.autoMockOff(); 

import React from 'react'; 
import TestUtils from 'react-addons-test-utils'; 

const ImagesComponent = require('../src/Components/images'); 

describe('ImagesComponent',() => { 
    it('Render instance of div class=images in DOM',() => { 
     const shallowRenderer = TestUtils.createRenderer(); 
     shallowRenderer.render(<ImagesComponent className="images" />); 
     imagesDivComponent = shallowRenderer.getRenderOutput(); 
     expect(imagesDivComponent.props.className).toEqual('images'); 
    }); 
}); 
+0

你在哪里调用'toUpperCase()'函数?您的问题中没有提供该部分代码。 –

+1

我不是,这是问题。我已经修改了它,通过改变我定义我的React组件的方式,使用var Images = React.createClass({'代替export class,然后在底部添加'module.exports = Images;' – DorianHuxley

回答

0

重新定义你的阵营组件来自:

export class Images extends Component {...} 

到:

var Images = React.createClass ({...)}; 
module.exports = Images;