问题描述
我正在尝试使用条件语句测试具有"type": "FeatureCollection","features": [
{ "type": "Feature","properties": { "Name": "E2","Description": "E2 postcode district" },"geometry": { "type": "Polygon","coordinates": [ [ [ -0.043850,51.531790 ],[ -0.043240,51.531550 ],[ -0.042770,51.531530 ],[ -0.041630,51.531100 ],[ -0.041500,51.530730 ],51.530700 ],[ -0.041420,51.530570 ],[ -0.040890,51.530150 ],[ -0.040870,51.530130 ],[ -0.040460,51.529650 ],51.529580 ],[ -0.040520,51.529410 ],
方法的React组件。我对componentDidMount
方法的测试很容易通过。我只是想覆盖这种情况。
这是要测试的实际文件中的条件。
componentDidMount
这是对const GRANT_WRITER_ROLE = 19;
componentDidMount() {
const {
token
} = this.props;
const permissionData = new PermissionsUtility(token);
const {
permissions
} = permissionData;
const allEntityIds = [];
const grantWriterEntityIds = [];
permissions.sort().forEach((org) => {
const [entityId,orgIdentifier,roleId] = org.split(':');
allEntityIds.push(entityId);
if (parseInt(roleId) === GRANT_WRITER_ROLE) {
const [orgId,programId,subOrgId] = orgIdentifier.split('_');
grantWriterEntityIds.push({
hideOrgId: orgId,hideProgramId: programId,hideSubOrgId: subOrgId,});
}
});
}
的测试,我正在测试以查看我从componentDidMount
返回的roleId
是否等于promise
:
GRANT_WRITER_ROLE
describe('Test ComponentDidMount',() => {
it('it executes componentDidMount',() => {
const wrapper = shallow( < _Grants { ...props
}
/>);
wrapper.instance().componentDidMount();
});
it('it tests permissions',() => {
const PermissionsUtility = jest
.fn()
.mockImplementationOnce(() => Promise.resolve([{
roleId: 19
}]));
PermissionsUtility.forEach((utiltiy) => {
const [{roleId}] = utiltiy;
expect(roleId).toBe(GRANT_WRITER_ROLE);
})
})
})
:
TypeError
我认为错误在于我正在执行的承诺中吗?
如何为TypeError: PermissionsUtility.forEach is not a function
240 | .mockImplementationOnce(() => Promise.resolve([{roleId: 19}]));
241 |
> 242 | PermissionsUtility.forEach((utiltiy) => {
| ^
243 | const [{roleId}] = utiltiy;
244 | expect(roleId).toBe(GRANT_WRITER_ROLE);
245 | })
条件编写测试?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)