다른 인수로 같은 함수를 두 번 조롱합니다.
JEST는 처음이고 현재 onComponentDidMount에서 API 호출을 하는 Javascript 컴포넌트를 테스트하고 있습니다.Ajax 콜(api 콜)의 반환 데이터에 따라 컴포넌트는 표 또는 단순한 텍스트를 표시합니다.
JEST 테스트는 매우 간단합니다.현재로서는, 현재의 스냅샷과 일치하는 테스트만을 실시합니다.따라서 API 호출은 서로 다른 데이터를 반환할 수 있으므로 스냅샷은 1) 표 포함 2) 단순 텍스트 포함 두 가지 측면이 있습니다.
나는 그렇게 서비스를 조롱하는 데 성공했다
jest.mock("/myService", () => ({
index: (data, callback) => {
const return = [
{
{...}
},
]
callback(return)
},
}))
내 컴포넌트는myService.index()
콜백에 사용하는 값이 다른 콜백에 대해 올바르게 콜백합니다.
이게 어떻게 생겼는지 보여줄게
it("has proper snapshot", () => {
const props = {...}
const component = shallow(<MyComponent {...props} />)
expect(component).toMatchSnapshot()
})
이것은 첫 번째 예로는 효과가 있지만, 나에게 맞는 정답을 찾을 수 없을 것 같습니다.도와주실 수 있나요? :)
1- 각 콜에 대해 다른 결과를 반환하는 모의:
myMock
.mockReturnValueOnce(10)
.mockReturnValueOnce('x')
.mockReturnValue(true);
돌아온다10
첫 번째 통화에서'x'
두 번째 통화에서true
그 후 언제든지.
2- 모크가 호출된 인수를 확인하는 경우:
사용: HaveBeenNthCalledWith
expect(mock).toHaveBeenNthCalledWith(1, '1st call args');
expect(mock).toHaveBeenNthCalledWith(2, '2nd call arg 1', '2nd call arg 2');
라고 단언할 것이다
그
mock
로 호출되었다.'1st call args'
처음에 ->라고 불렸을 때mock('1st call args')
그
mock
로 호출되었다.'2nd call arg 1'
그리고.'2nd call arg 2'
두 번째로 ->라고 불렸을 때mock('2nd call arg 1', '2nd call arg 2')
3- 함수 매개변수에 따라 특정 응답을 원하는 경우
기본적으로는 joke에 의해 지원되지 않지만 joke를 볼 수 있습니다.이 경우 다음과 같은 작업을 수행할 수 있습니다.
when(fn).calledWith(1).mockReturnValue('yay!')
이에 대한 Jest 문서를 확인하십시오.함수를 조롱할 때 다른 값을 반환하고 한 번 원하는 값을 반환한 다음 나중에 다른 값을 반환할 수 있습니다.
언급URL : https://stackoverflow.com/questions/53887173/jest-mock-the-same-function-twice-with-different-arguments
'programing' 카테고리의 다른 글
네스트된 객체에 대해 State를 설정하려면 어떻게 해야 합니까? (0) | 2023.03.29 |
---|---|
D3.js: 이미지(데이터에 지정된 파일 이름 포함)를 축의 틱 값으로 사용 (0) | 2023.03.29 |
Oracle 테이블의 마지막 행을 가져오는 방법 (0) | 2023.03.29 |
Sublime Text 3에서 JSX 파일에 대해 Emet을 활성화하려면 어떻게 해야 합니까? (0) | 2023.03.29 |
js 스크립트 파일의 WordPress 경로 URL (0) | 2023.03.29 |