React单元测试:试图测试函数的html标签但是失败了

时间:2018-01-31 05:41:26

标签: reactjs unit-testing

我在反应中运行单元测试时出现此错误:

  

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);

也可以通过。

那我为什么会收到错误?

1 个答案:

答案 0 :(得分:0)

你绑定了这个功能吗? 尝试在主构造函数

上绑定函数
this.setArticleList = setArticleList.bind(this);