Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
253 views
in Technique[技术] by (71.8m points)

how to mock an external function in ezyme or jest testing

// Component.js


render () {
const isEventAccessible = checkAccess(area);
if(isEventAccessible ){
  return(<div>No access</div);
}
return (<div>Acess</div>);

//checkAccess.js 

export const checkAccess = (a) => {
if(a==1){
  return true;
}
else{
  return false;  
}

}

I want to create two snapshots one for No Access view & one for Access but i can't pass checkAccess function in props how can i mock this function please help..????

question from:https://stackoverflow.com/questions/65857003/how-to-mock-an-external-function-in-ezyme-or-jest-testing

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

In your test file, mock the module function with

import { checkAccess } from '<path to your module file>/checkAccess'; 
jest.mock('<path to your module file>/checkAccess')

and in your test let the mock return the value with mockReturnValue:

it('should render "No access"', () => {
  checkAccess.mockReturnValue(true); // mock will return true
  const { getByText } = render(<App />);
  expect(getByText('No access')).toBeInTheDocument();
});

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...