我有一个使用包含有效功能的单元测试。是否可以从集合中选择一个节点,然后获取text属性?我试过这个:
it('should be equaling name property', () => {
const props = {
myprops: [{
email: "blaat@mail.com",
name: "Coco Chanel"
}]
};
const wrapper = shallow(<ServiceDetails {...props} />);
expect(wrapper.find('div')[0].text).equals('Cici Chanel');
});
这是我的reactjs组件的一部分:
return (
<section>
<div>{email}</div>
<div>{name}</div>
</section>
)
但是我收到了这个错误:
TypeError: Cannot read property 'text' of undefined
如何选择第二个div并获取该div中的值?
答案 0 :(得分:1)
我相信你需要唯一识别div:
expect(wrapper.find('section div:nth-of-type(1)').text()).equals('Cici Chanel');
或更好:
return (
<section>
<div className="div1">{email}</div>
<div>{name}</div>
</section>
)
expect(wrapper.find('.div1').text()).equals('Cici Chanel');
另外text
is function,而不是财产。
答案 1 :(得分:0)
对我来说,以下代码有效
const component = wrappper.find('section.div')
expect(component.at(0).text()).toEqual('Cici chanel')