首页 > 其他 > 详细

[React Testing] Conditional className with Shallow Rendering

时间:2016-01-07 06:38:19      阅读:123      评论:0      收藏:0      [点我收藏+]

Often our components have output that shows differently depending on the props it is given; in this lesson, we go over how to compare the className prop element tree output based on conditional input.

 

// LikeCounter.js

import React from ‘react‘;
import classnames from ‘classnames‘;

const LikeCounter = ({count, isActive}) => {
    return <a
        className={
            classnames({
                ‘LikeCounter--active‘: isActive
            })
        }
        href="#">Like: {count}</a>
}

export default LikeCounter;

// LikeCounter.spec.js
import React from ‘react‘;
import expect from ‘expect‘;
import expectJSX from ‘expect-jsx‘;
import TestUtils from ‘react-addons-test-utils‘;
import LikeCounter from ‘./likeCounter‘;

describe(‘LikeCOunter‘, ()=>{

    it(‘should be a link‘, ()=>{
        const renderer = TestUtils.createRenderer();
        renderer.render(<LikeCounter count={5} />);
        const actual = renderer.getRenderOutput().type;
        const expected = ‘a‘;
        expect(actual).toEqual(expected);
    });
});

describe(‘active class‘, ()=>{
    it(‘should have active class based on isActive props: true‘, ()=>{

        const renderer = TestUtils.createRenderer();
        renderer.render(<LikeCounter count={5} isActive={true}/>);
        const actual = renderer.getRenderOutput().props.className.includes(‘LikeCounter--active‘);
        const expected = true;
        expect(actual).toEqual(expected);
    });

    it(‘should have active class based on isActive props: false‘, ()=>{

        const renderer = TestUtils.createRenderer();
        renderer.render(<LikeCounter count={5} isActive={false}/>);
        const actual = renderer.getRenderOutput().props.className.includes(‘LikeCounter--active‘);
        const expected = false;
        expect(actual).toEqual(expected);
    });
});

 

[React Testing] Conditional className with Shallow Rendering

原文:http://www.cnblogs.com/Answer1215/p/5108013.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!