首页 > 解决方案 > includes() 和 toLowerCase 不会从开玩笑的单元测试中抛出函数错误

问题描述

MyComponent.js 具有 toLowerCase 并包含在道具上。当我对 MyComponent 进行单元测试时,我得到了 toLowerCase 并且 includes() 不是一个函数。

我的组件.js

this.props.currentUser.role.toLowerCase().includes('admin')

MyComponent.test.js

    mount(<Provider store={store}>
        <MyComponent />
      </Provider>);
  });

错误:

TypeError: this.props.currentUser.role.toLowerCase is not a function 
TypeError: this.props.currentUser.role.includes is not a function

标签: reactjstypescriptjestjsenzyme

解决方案


您应该将 currentUser 对象作为道具传递给组件。

let user ={role:"test"}
mount(<Provider store={store}>
        <MyComponent currentUser={user}/>
      </Provider>);
});

推荐阅读