我正在尝试测试 Jest 的 GET 请求是否正常工作,并且我可以通过他们的 ID 获取帖子。请耐心等待,我对前端测试很陌生,不完全确定如何去做。
这是我的 GET 请求:
getPost() {
this.refreshToken();
http
.get(`/posts/${this.$cookie.get('id')}`, {
headers: {
"Authorization": `Bearer ${this.$cookie.get('token')}`,
"Content-type": "application/json",
},
})
.then((response) => {
this.post = response.data;
})
.catch((error) => {
console.log(error.response);
});
},
我不完全确定如何测试这个,因为网上没有很多关于这个的例子。
到目前为止,我的 Jest 测试如下所示:
import Post from '@/views/Posts.vue'
import { shallowMount } from '@vue/test-utils';
const axios = require('axios');
jest.mock('axios');
jest.mock('@/common.js', () => {
return{
baseURL: 'http://localhost:8080/api',
request: jest.fn().mockResolvedValue({
data: [
{
postTitle: null,
postContents: null,
ranking: 3,
createdTime: '2021-04-05',
modifiedTime: null,
subforum: 'test',
user: 'tester',
comments: ['render? i dont know her']
}
]
}),
}
});
describe('test get Post Title', () => {
afterEach(() => jest.resetAllMocks());
it('fetches post by post id', async () => {
const post = await getPost();
expect(axios.request).toHaveBeenCalledWith({ method: 'get', url: '/posts/${this.$cookie.get('postid')}' });
});
});
对不起,如果这是一个非常愚蠢的问题,我只是很困惑。