jeast.fn()의 기능과 사용법은 무엇입니까?
누가 설명 좀 해줄래?jest.fn()
실제의 예를 들면, 어떻게 사용하는지, 어디에 사용하는지 혼란스럽기 때문에, 실제로 효과가 있습니다.
예를 들어 Utils Function(유틸리티 기능)을 사용하여 버튼을 클릭하기만 하면 국가 목록을 가져오는 구성 요소가 있는 경우
export default class Countries extends React.Component {
constructor(props) {
super(props)
this.state = {
countryList:''
}
}
getList() {
//e.preventDefault();
//do an api call here
let list = getCountryList();
list.then((response)=>{ this.setState({ countryList:response }) });
}
render() {
var cListing = "Click button to load Countries List";
if(this.state.countryList) {
let cList = JSON.parse(this.state.countryList);
cListing = cList.RestResponse.result.map((item)=> { return(<li key={item.alpha3_code}> {item.name} </li>); });
}
return (
<div>
<button onClick={()=>this.getList()} className="buttonStyle"> Show Countries List </button>
<ul>
{cListing}
</ul>
</div>
);
}
}
Utils 함수 사용
const http = require('http');
export function getCountryList() {
return new Promise(resolve => {
let url = "/country/get/all";
http.get({host:'services.groupkt.com',path: url,withCredentials:false}, response => {
let data = '';
response.on('data', _data => data += _data);
response.on('end', () => resolve(data));
});
});
}
어디에 사용할 수 있습니까?jest.fn()
또는 어떻게 테스트 할 수 있을까요?getList()
버튼을 클릭하면 기능이 호출됩니까?
모의 함수는 출력을 테스트하는 것이 아니라 다른 코드에 의해 간접적으로 호출되는 함수의 동작을 감시할 수 있기 때문에 "스파이"라고도 합니다.다음을 사용하여 모의 함수를 만들 수 있습니다.jest.fn()
.
사용되지 않은 새 모의 함수를 반환합니다.필요에 따라 모의 구현을 수행합니다.
const mockFn = jest.fn();
mockFn();
expect(mockFn).toHaveBeenCalled();
모의 구현의 경우:
const returnsTrue = jest.fn(() => true);
console.log(returnsTrue()) // true;
조롱할 수 있도록getList
사용.jest.fn()
다음과 같습니다.
jest.dontMock('./Countries.jsx');
const React = require('react/addons');
const TestUtils = React.addons.TestUtils;
const Countries = require('./Countries.jsx');
describe('Component', function() {
it('must call getList on button click', function() {
var renderedNode = TestUtils.renderIntoDocument(<Countries />);
renderedNode.prototype.getList = jest.fn()
var button = TestUtils.findRenderedDOMComponentWithTag(renderedNode, 'button');
TestUtils.Simulate.click(button);
expect(renderedNode.prototype.getList).toBeCalled();
});
});
언급URL : https://stackoverflow.com/questions/40992628/what-does-jest-fn-do-and-how-can-i-use-it
'programing' 카테고리의 다른 글
커스텀 토큰을 사용한 REST API 보안 보호(스테이트리스, UI, 쿠키, 기본 인증, OAuth, 로그인 페이지 없음) (0) | 2023.03.15 |
---|---|
Angular 5 서비스를 통해 로컬 .json 파일을 읽습니다. (0) | 2023.03.15 |
MongoDB에서 가장 큰 문서 크기 찾기 (0) | 2023.03.15 |
jQuery 및 JSON을 사용하여 양식을 채우시겠습니까? (0) | 2023.03.15 |
woocommerce에 커스텀 배송료를 추가하는 방법은? (0) | 2023.03.15 |