У меня есть файл Helper.js
с несколькими вспомогательными функциями, как показано ниже, который используется в различных компонентах.
export function buildOptions(elem) {
var oList=[];
for (var i=0; i < field.length; i++) {
oList.push (
<option value={options[i]["id"]}>
{options[i][elem]}
</option>
)
}
return oList;
}
export function B(){
.....
}
Вот компонент, который использует функцию, определенную в файле Helper.js
. Я пишу тесты для компонента, и я хотел бы посмеяться над вызываемой здесь внешней функцией.
import React from 'react';
import ReactDOM from 'react-dom';
import { buildOptions, A} from './Helper.js';
class DemoComponent extends React.Component {
constructor(props) {
super(props);
}
add(e, index) {
....
}
render() {
var o_list=buildOptions("name");
return (
<div>
...
<select required className={selectClass} >
{o_list}
</select>
...
<button type="button" onClick={(e) => this.add(e, this.props.index)}>
Add
</button>
</div>
);
};
}
Я новичок в Jest / Enzyme и не могу понять, как имитировать внешние функции buildOptions. Я не могу понять, как смоделировать внешнюю функцию buildOptions. Может кто-нибудь помочь мне с этим.
Вот мой тестовый код:
import React from 'react';
import { mount, shallow } from 'enzyme';
import { buildOptions } from '../components/Helper.js';
import DemoComponent from '../components/DemoComponent';
describe('Democomponent', () => {
it('should render required elements', () => {
const wrapper = shallow(
<DemoComponent
index={0}/>
);
//
tests
});