[React Testing] className with Shallow Rendering

The React Shallow Renderer test utility lets us inspect the output of a component one level deep. In this lesson, we will examine the rendered output of props, specifically the className prop. We will then use the ES2015 String.includes() method to check that our rendered className includes what we expect.

 

//className,js
import React from 'react';

const IconComponent = ({icon}) => {
    return (
        <a className={`fa ${icon}`} rel="icon"/>
    )
};

export default IconComponent;

//className.spec.js
import React from 'react';
import expect from 'expect';
import expectJSX from 'expect-jsx';
import TestUtils from 'react-addons-test-utils';
import IconComponent from './className';

describe('LikeCOunter', ()=>{

    it('should have facebook icon', ()=>{

        const renderer = TestUtils.createRenderer();
        renderer.render(<IconComponent icon="facebook"/>);
        const actual = renderer.getRenderOutput().props.className.includes('facebook');
        console.log(renderer.getRenderOutput());
        const expected = true;
        expect(actual).toEqual(expected);
    });
});

 

posted @ 2016-01-07 03:37  Zhentiw  阅读(264)  评论(0编辑  收藏  举报