我正在学习使用React中的Jest进行单元测试。当我的API返回给我响应时,我想测试状态200和400。但是第一个是通过测试,但第二个是面临请求失败,状态代码400错误ant然后第二个案例失败。为什么我会面临这个?我拿了一组我的案例,我用axios-mock-adapter模拟了我的axios get方法。你认为问题在哪里?我应该怎么做?这是我的示例代码。
UserService.test.ts:
import { ACCOUNT_SETTINGS } from '../../core/constants/apiEndpoints'
import mockServiceInstance from '../__mocks__/MockService'
import { fetchUsersMockData, userClaimsTreeMockData } from "../__mocks__/UserServiceMockData";
import axios from "axios";
import MockAdapter from "axios-mock-adapter";
afterEach(() => {
jest.clearAllMocks()
});
const mock = new MockAdapter(axios);
// roles/list?PageIndex=0&PageSize=3
describe('fetchAllUsers method', () => {
let url : string = `${ACCOUNT_SETTINGS.PAGED_LIST}?PageIndex=${0}&PageSize=${3}`;
it("get is succesfull", async () => {
const mockData = {
result: fetchUsersMockData,
error: null,
isSuccessful: true
}
mock.onGet(url).reply(200, mockData);
const { data } = await axios.get(url)
expect(data.result).toStrictEqual(fetchUsersMockData);
})
it("get has error", async () => {
mock.onGet(url).reply(400);
const { status} = await axios.get(url) // here is error line
})
})
字符串
我的示例模拟数据:
fetchUsersMockData = {
pageIndex: 0,
pageSize: 3,
totalCount: 8,
totalPages: 1,
items: [
{
id: uuidv4(),
username: "[email protected]",
name: "Scot",
surname: "Lawson",
email: "[email protected]",
phoneNumber: "03212342345",
isActive: true,
isLocked: false,
timeZone: "Europe/Istanbul"
}
]
}
型
1条答案
按热度按时间cnjp1d6j1#
将错误测试场景 Package 在
try...catch
块中解决方法:
字符串
更多关于错误处理