Javascript 使用酶,如何在成分中找到子成分
我是新的反应天然和酶,我试图创建一个自定义组件在这里。 我将显示一个基于Javascript 使用酶,如何在成分中找到子成分,javascript,reactjs,react-native,enzyme,Javascript,Reactjs,React Native,Enzyme,我是新的反应天然和酶,我试图创建一个自定义组件在这里。 我将显示一个基于this.props.hasIcon的图像。我将hasIcon的默认道具值设置为true。当我检查时,图像存在于Wrapper中。我得到false tlProgress.js class TLProgress extends Component { render() { return ( <View style={styles.container}> {this.rende
this.props.hasIcon
的图像。我将hasIcon
的默认道具值设置为true
。当我检查时,图像
存在于Wrapper中。我得到false
tlProgress.js
class TLProgress extends Component {
render() {
return (
<View style={styles.container}>
{this.renderImage}
{this.renderProgress}
</View>
);
}
}
TLProgress.defaultProps = {
icon: require("./../../img/logo.png"),
indeterminate: true,
progressColor: Colors.TLColorAccent,
hasIcon: true,
progressType: "bar"
};
describe("tlProgress rendering ", () => {
let wrapper;
beforeAll(() => {
props = { indeterminate: false };
wrapper = shallow(<TLProgress {...props} />);
});
it("check progress has app icon", () => {
expect(wrapper.find("Image").exists()).toBe(true); // fails here..
});
});
现在,如果我检查酶中是否存在图像
,我将得到false
tlProgress.test.js
class TLProgress extends Component {
render() {
return (
<View style={styles.container}>
{this.renderImage}
{this.renderProgress}
</View>
);
}
}
TLProgress.defaultProps = {
icon: require("./../../img/logo.png"),
indeterminate: true,
progressColor: Colors.TLColorAccent,
hasIcon: true,
progressType: "bar"
};
describe("tlProgress rendering ", () => {
let wrapper;
beforeAll(() => {
props = { indeterminate: false };
wrapper = shallow(<TLProgress {...props} />);
});
it("check progress has app icon", () => {
expect(wrapper.find("Image").exists()).toBe(true); // fails here..
});
});
description(“tlProgress rendering”,()=>{
让包装纸;
以前(()=>{
props={不确定:false};
包装器=浅();
});
它(“检查进度是否有应用程序图标”,()=>{
expect(wrapper.find(“Image”).exists()).toBe(true);//此处失败。。
});
});
您正在搜索名为“图像”的标记,而不是查找组件图像
应该是:
import Image from '../Image';
wrapper.find(Image) //do your assert here
您没有在render()中调用renderImage函数——您忘记了括号,因此它被解释为未定义的变量 应该是:(我假设您想调用renderProgress(),而不是renderProgress)
类TLProgress扩展组件{
render(){
返回(
{this.renderImage()}
{this.renderProgress()}
);
}
expect(wrapper.find(Image.exists()).toBe(true)
给了我false
。它失败了。@user2906641尝试用mountya替换shall。我首先尝试了,我得到了错误Enzyme的mount要求加载DOM环境,但没有发现任何环境。
。然后我使用shall。@user2906641您可以记录find语句吗?我不确定是否存在适用于ComponentyPeerror:C在tryCallOne的new promise(node_modules/promise/lib/core.js:66:3)中,在doResolve(node_modules/promise/lib/core.js:45:5)的tryCallTwo(node_modules/promise/lib/core.js:45:5)中,无法读取未定义的at对象的属性“find”。(app/components/res/u-test\uuuu-promise\t\uuuuu/tlpromise/tlpromise/tlpro(node_modules/promise/lib/core.js:37:12)位于node_modules/promise/lib/core.js:123:15