Reactjs 函数的React测试用例
我有一个下面的Reactjs 函数的React测试用例,reactjs,unit-testing,jestjs,enzyme,react-testing-library,Reactjs,Unit Testing,Jestjs,Enzyme,React Testing Library,我有一个下面的构造api data.js文件 import getSubmitData from './get-submit-data'; import getInitData from './get-init-data'; export default data => { switch (data.actionType) { case 'landing': case 'save': return getSubmitData(data); cas
构造api data.js
文件
import getSubmitData from './get-submit-data';
import getInitData from './get-init-data';
export default data => {
switch (data.actionType) {
case 'landing':
case 'save':
return getSubmitData(data);
case 'getInitData':
return getInitData(data);
default:
return {};
}
};
对于上面的js文件,我在react测试库中编写了以下测试用例
import constructApiData from '../construct-api-data';
describe('constructApiData', () => {
it('should return object when case is landing', () => {
expect(
typeof constructApiData({
data: { test: 'test', actionType: 'landing' },
}),
).toBe('object');
});
it('should return object when case is save', () => {
expect(
typeof constructApiData({
data: { test: 'test', actionType: 'save' },
}),
).toBe('object');
});
it('should return object when case is getInitData', () => {
expect(
typeof constructApiData({
data: { test: 'test', actionType: 'getInitData' },
}),
).toBe('object');
});
it('should return object when case is default', () => {
expect(typeof constructApiData({})).toBe('object');
});
}
即使在编写了这些测试用例之后,覆盖率报告也说我的测试覆盖率还不完整。js文件中的以下行缺少覆盖率
return getSubmitData(data);
return getInitData(data);
我在这里遗漏了什么?问题是因为传递给函数的数据不正确。 试试下面的方法
it('should return object when case is save', () => {
expect(
typeof constructApiData({ test: 'test', actionType: 'save' })
).toBe('object');
});
it('should return object when case is getInitData', () => {
expect(
typeof constructApiData({ test: 'test', actionType: 'getInitData' })
).toBe('object');
});