我在反应中运行单元测试时出现此错误:
TypeError:setArticleList.find不是函数
21 | expect(setArticleList.find(' div')。length> 0).to.equal(true);
navList.test.js
describe('NavList', function () {
const app = shallow(<NavList/>);
it('function setArticleList() ', function () {
const setArticleList = app.instance().setArticleList();
expect(setArticleList.find('div').length >0).to.equal(true);
});
});
navList.js
setArticleList(){
return (
<div className="list-unstyled d-flex align-items-center">
<div>test</div>
</div>
);
}
为什么 setArticleList.find不是函数? 通过以下内容:
const app = shallow();
期望(app.find(&#39; H 2&#39;。)长度).to.equal(1);
此外,如果我修改 setArticleList(),例如 setArticleList(){return true;}
然后运行 expect(setArticleList).to.equal(true);
也可以通过。
那我为什么会收到错误?
答案 0 :(得分:0)
你绑定了这个功能吗? 尝试在主构造函数
上绑定函数this.setArticleList = setArticleList.bind(this);