我正在尝试测试使用先前创建的RTK查询API的组件,如下行所示:const { data, isFetching } = useLoadListDataQuery(queryConfig);
API是这样创建的:
export const listApi = createApi({
baseQuery: graphqlRequestBaseQuery({
url: 'graphql',
}),
reducerPath: 'listApi',
endpoints: (builder) => ({...}),
});
我已经使用MSW模拟了服务器,但是我还没有达到模拟服务器试图回答的程度。下面是我的测试:
describe("List", () => {
beforeAll(() => {
server.listen();
});
afterEach(() => {
server.resetHandlers();
});
afterAll(() => server.close());
it('should render successfully', () => {
const { baseElement } = render(<ApiProvider api={listApi}><SomeComponent/></ApiProvider>);
});
});
问题是生成获取请求时提供错误:TypeError: Only absolute URLs are supported
我已经尝试过用这种方式设置jest配置环境:
testEnvironmentOptions: {
url: 'http://someAdress.test/',
},
而且即使window.location.href像上面那样,错误还是会发生。有没有办法在不改变API的情况下以某种方式注入hostname?
1条答案
按热度按时间bvuwiixz1#
您还必须告诉RTK Query针对该URL发出请求: