【发布时间】:2022-02-14 16:22:49
【问题描述】:
如何解决这个错误?当我运行yarn test 时收到此错误:
不变违规:在上下文中找不到“客户”或通过 作为一个选项。将根组件包裹在 , 或 通过选项传入一个 ApolloClientApolloClient 实例。
gql
export const GETLOCATIONNAME = gql`
query FindLocationByAddress($placeSearch: InputEsriGeoCode!) {
findLocationByAddress(placeSearch: $placeSearch) {
name
address {
street1
street2
city
state
zipCode
country
}
geoCode {
longitude
latitude
}
}
}
`;
location.test.js
it('should render location', async () => {
const location = {
request: {
query: GETLOCATIONNAME,
variables: {
placeSearch: {
address: inputString,
},
},
},
result: {
data: {"data":{"findLocationByAddress":[{"name":"Manila, First District NCR, National Capital Region, PHL","address":{"street1":"","street2":"","city":"Manila","state":"National Capital Region","zipCode":"","country":"PHL"},"geoCode":{"longitude":14.604870000000062,"latitude":120.9862700000001}}]}}
},
};
const component = TestRenderer.create(
<MockedProvider mocks={[location]} addTypename={false}>
<LocationSearch name="Manila, First District NCR, National Capital Region, PHL" />
</MockedProvider>,
);
await new Promise(resolve => setTimeout(resolve, 0));
const p = component.root.findByType('p');
expect(p.children.join('')).toContain('Location');
});
资源https://www.apollographql.com/docs/react/development-testing/testing/
【问题讨论】:
-
你检查过你没有使用不同的包吗? stackoverflow.com/a/58476065/1868008
-
@diedu 是的。我已经检查过了
标签: javascript reactjs