javascript - AppSync GraphQL 模拟解析器映射不生成唯一项目

标签 javascript mocking graphql aws-appsync resolver

我的模拟不会为每个项目生成唯一的数据,而是每个项目都具有相同的字段值。

选项 1:(理想方法,错误结果)

AppSync 架构包含 [Model]items 字段,如果我单独放置 Model 解析器,则所有 items 列表中的 Model 具有相同的值。

const mocks = {
  ModelModelConnection: () => ({
    items: () => new MockList(5),
  }),
  Model: () => ({
    id: casual.uuid,
    name: casual.title,
  }),
};

结果... Results

<小时/>

选项 2:(替代方法,正确结果)

const mocks = {
  ModelModelConnection: () => ({
    items: () => new MockList(5, () => ({
      id: casual.uuid,
      name: casual.title,
    })),
  }),
};

Results

<小时/>

我想选择选项 1,但我似乎无法获得可 mock 的独特项目。我一直在为这个摸不着头脑。提前致谢!

最佳答案

the docs所示,如果您想在每次触发字段解析器时生成不同的值,则模拟解析器应该是一个函数,而不是一个值。所以代替:

Model: () => ({
  id: casual.uuid,
  name: casual.title,
}),

你应该这样做:

Model: () => ({
  id: () => casual.uuid,
  name: () => casual.title,
}),

这会导致每次解析字段时调用 idname

关于javascript - AppSync GraphQL 模拟解析器映射不生成唯一项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53881048/

相关文章:

javascript - AngularJs 中的部分模板未加载

javascript - Angular - 如何将参数传递到延迟 promise 中?

graphql - GraphQL 解析器可以强制检索父级中的参数吗?

python - 如何根据传递给 open() 的参数以不同方式模拟打开

python - 有人有使用 Python Zeep 和 Mock 对 SOAP API 进行单元测试的示例吗?

javascript - 将 GraphiQL 查询转换为 JSON

github - GitHub API v4 (GraphQL) 中的突变很少?

javascript - Firebase Backfire 快速入门指南不起作用

javascript - 为什么这个变量引用不起作用?

java - 如何使用 jmockit 注入(inject)模拟依赖