gpt4 book ai didi

reactjs - 如何使用 Jest 和 ReactJS 获得完整的测试覆盖率,目前为 90.48% 语句,58.06% 分支

转载 作者:行者123 更新时间:2023-12-03 13:31:58 25 4
gpt4 key购买 nike

使用最简单的 ReactJS 组件,Jest 不会报告完整的测试覆盖率。如何让语句和分支显示100%。

目前 Jest 显示 90.48% 的语句,58.06% 的分支。使用jest --coverage运行。

MyThing.js

import React from 'react';

export default class MyThing extends React.Component {
render() {
return (
<div>
Stuff
</div>
);
}
}

MyThing-test.js

// __tests__/MyThing-test.js

jest.unmock('../app/views/static/MyThing');

import React from 'react';
import ReactDOM from 'react-dom';
import TestUtils from 'react-addons-test-utils';

import MyThing from '../app/views/static/MyThing';


describe('MyThing', () => {

const instance = TestUtils.renderIntoDocument(
<MyThing />
);

it('gets rendered', () => {
expect( TestUtils.isCompositeComponent(instance) ).toBeTruthy();
});


it('is not DOM component', () => {
// checks if is a standard DOM element, i.e. <div>
expect( TestUtils.isDOMComponent(instance) ).not.toEqual(true);
});

it('isElementOfType is React element', () => {
expect( TestUtils.isElementOfType(<MyThing />, MyThing) ).toEqual(true);
});

it('render()', () => {
const retVal = instance.render();

expect( retVal.type ).toEqual("div");
});

});

最佳答案

这很可能是由于 babel 的转译代码所致。请参阅issue #817这个问题正在被处理并且最近刚刚得到解决。

升级到 jest@15 后应该可以解决此问题。

尽管有些人提到需要将源映射添加到他们的 .babelrc 中,例如:

{
"env": {
"test": {
"sourceMaps": "both"
}
}
}

并使用 "coverageCollector": "jest-babel-istanbul"显式更新他们的 Jest

关于reactjs - 如何使用 Jest 和 ReactJS 获得完整的测试覆盖率,目前为 90.48% 语句,58.06% 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37738707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com