2

我有一个使用 Apollo 客户端的应用程序,当我添加 MSW 时,我发现缓存正在返回带有空响应的陈旧请求。MSW 团队表示,最佳实践是在运行测试以清除每个请求的缓存时,但我也想在模拟模式下运行我的应用程序以进行手动测试。

在启用模拟的情况下运行应用程序时执行以下操作似乎可行,但必须将这样的模拟逻辑放入应用程序似乎违反直觉。还有人遇到这种情况吗?

const [
   fetchUser,
   { loading, error, data, refetch, networkStatus },
 ] = useLazyQuery(QUERY_GET_USER, {
   fetchPolicy: API_MOCKING ? 'network-only' : 'cache-and-network',
   nextFetchPolicy: API_MOCKING ? 'network-only' : 'cache-first',
 });
4

1 回答 1

1

我无法评论你原来的问题,所以我会做一个回答,让你知道你至少可以覆盖默认的 fetchPolicy,即使在 apollo-boost 中也是如此。这可能会使您的测试的 fetchPolicy 设置为“仅限网络”而不那么痛苦。

参考:https ://github.com/apollographql/apollo-client/issues/3900#issuecomment-420830472

于 2021-03-24T16:37:47.917 回答