2017-02-22 56 views
0

任何人都可以在下面为我解释jest的测试吗?测试时,酶会忽略某些支柱值反应组分

StateIdText.jsx

import React, { Component, PropTypes } from 'react'; 

class StateIdTxt extends Component { 
    propTypes: { 
     x: PropTypes.number.isRequired, 
     y: PropTypes.number.isRequired, 
     stateId: PropTypes.number.isRequired 
    } 

    render() { 
     const {x, y, stateId} = this.props; 
     return (
       <text x={x} y={y} 
         textAnchor="end" 
         dominantBaseline="text-before-edge" 
         fontSize=".7em" fill="blue"> 
        {stateId} 
       </text> 
     ); 
    } 
} 

export default StateIdTxt; 

StateIdTxt.test.js

import React from 'react'; 
import {mount, render, shallow} from 'enzyme'; 

import StateIdTxt from './StateCoordTxt.jsx'; 

it('shallow <StateIdTxt />',() => { 
    const wrapper = shallow(<StateIdTxt x={1.5} y={2.1} stateId={99} />); 
    expect(wrapper.prop('x')).toEqual(1.5); 
    expect(wrapper.prop('y')).toEqual(2.1); 
    expect(wrapper.prop('stateId')).toBeUndefined(); 

    expect(wrapper.prop('textAnchor')).toBe('start'); // how come not end? 
    expect(wrapper.prop('dominantBaseline')).toBe('text-before-edge'); 
    expect(wrapper.prop('fontSize')).toBe('.7em'); 
    expect(wrapper.prop('fill')).toBe('blue'); 
}); 

为什么wrapper.prop('textAnchor')期待一个 '开始',它传递的,而不是 '结束'?我实际上可以将“结束”更改为其他随机文本,并且测试仍然通过。

回答

0

根据您在您的文章中提到的文件名,我想你在导入一个错字在StateIdTxt.test.js

import StateIdTxt from './StateCoordTxt.jsx'; 

看起来应该是

import StateIdTxt from './StateIdTxt.jsx'; 
+0

愚蠢的错误....感谢您指出。 – zyxue