0
我正在爲我的應用程序編寫測試,但在嘗試模擬異步獲取功能時遇到問題。無論我嘗試什麼,我得到:嘗試模擬Jest中的異步獲取功能時出現錯誤規範
asyncFetch.mockReturnValue is not a function
這使我相信該功能沒有被嘲笑。但是,我不知道問題出在哪裏。
這是測試:
import emailSignin from 'api/emailSignin';
jest.mock('api/helpers/asyncFetch');
describe('API Auth',() => {
describe('login',() => {
it('has a happy path', async() => {
const asyncFetch = require('api/helpers/asyncFetch').default;
asyncFetch.mockReturnValue({
json:() => 'it worked',
});
const response = await emailSignin('bob', 'password');
expect(response).toEqual('it worked');
});
});
});
這是我試圖模擬模塊:
import {
ClientError,
ServerError,
ValidationError,
} from 'api/helpers/errors';
async function asyncFetch(url, requestConfig = {}) {
const response = await fetch(url, requestConfig);
const responseBody = await response.json();
const { statusText, status } = response;
switch (status) {
case 400:
case 401:
case 403:
throw new ClientError(statusText, status);
case 422:
throw new ValidationError(statusText, status, responseBody.errors);
case 500:
case 501:
case 502:
case 503:
case 504:
case 505:
throw new ServerError(statusText, status);
default:
return response;
}
}
export default asyncFetch;
任何幫助竟被d非常感謝!
感謝您的答覆!這是我已經嘗試但沒有任何結果的事情之一。我得到另一個錯誤 'TypeError:(0,_asyncFetch2.default)不是一個函數',當我嘗試控制檯日誌時,它說'undefined'。 –
您能否將模塊的代碼添加到您的問題中。 –
我在帖子中加入了 –