模拟 GraphQL,MockList 仅生成数组中的两项
Mocking GraphQL, MockList genertes only two items in the array
我正在尝试在我的 GraphQL 模拟服务器中生成一个包含 10 个项目的列表,如下所示:
import { makeExecutableSchema, addMockFunctionsToSchema, MockList } from 'graphql-tools';
import casual from 'casual';
import typeDefs from './schema.graphql';
export const schema = makeExecutableSchema({ typeDefs });
const mocks = {
File: () => ({
path: casual.random_element([
'/assets/images/cars/1.JPG',
'/assets/images/cars/2.JPG',
'/assets/images/cars/3.JPG',
'/assets/images/cars/4.JPG',
'/assets/images/cars/5.JPG',
'/assets/images/cars/6.JPG',
'/assets/images/cars/7.JPG',
]),
}),
UsedCar: () =>
new MockList(10, () => ({
price: casual.integer(10000, 99999999),
year: casual.integer(1990, 2017),
})),
};
// This function call adds the mocks to your schema!
addMockFunctionsToSchema({ schema, mocks });
但我不知道为什么总是得到两辆二手车。
有人可以帮忙吗?
此致,
穆斯塔法
在您的代码中,您正在为 UsedCar 类型定义模拟解析器。您没有 post 您的 typeDef 或解析器,但我猜您对 UsedCar 的类型定义包括两个字段(价格和年份)……而不是包含这两个字段的整个对象数组。但是,这就是您告诉模拟函数的内容。
如果您有一个获取 UsedCar
类型数组的查询,为了获得 10 个该类型的模拟对象,您将必须同时模拟查询 和 类型。所以,假设你有一个像 getUsedCars
这样的查询,你真正想要的是:
mocks: {
Query: () => ({
getUsedCars: () => new MockList(10)
}),
UsedCar: () => ({
price: casual.integer(10000, 99999999),
year: casual.integer(1990, 2017),
})
}
编辑: 如果您 仅 模拟该类型,则架构中解析为该类型数组的任何位置都将 return 默认情况下有两个模拟对象,这就是为什么您看到的是两个而不是十个。
我正在尝试在我的 GraphQL 模拟服务器中生成一个包含 10 个项目的列表,如下所示:
import { makeExecutableSchema, addMockFunctionsToSchema, MockList } from 'graphql-tools';
import casual from 'casual';
import typeDefs from './schema.graphql';
export const schema = makeExecutableSchema({ typeDefs });
const mocks = {
File: () => ({
path: casual.random_element([
'/assets/images/cars/1.JPG',
'/assets/images/cars/2.JPG',
'/assets/images/cars/3.JPG',
'/assets/images/cars/4.JPG',
'/assets/images/cars/5.JPG',
'/assets/images/cars/6.JPG',
'/assets/images/cars/7.JPG',
]),
}),
UsedCar: () =>
new MockList(10, () => ({
price: casual.integer(10000, 99999999),
year: casual.integer(1990, 2017),
})),
};
// This function call adds the mocks to your schema!
addMockFunctionsToSchema({ schema, mocks });
但我不知道为什么总是得到两辆二手车。 有人可以帮忙吗?
此致, 穆斯塔法
在您的代码中,您正在为 UsedCar 类型定义模拟解析器。您没有 post 您的 typeDef 或解析器,但我猜您对 UsedCar 的类型定义包括两个字段(价格和年份)……而不是包含这两个字段的整个对象数组。但是,这就是您告诉模拟函数的内容。
如果您有一个获取 UsedCar
类型数组的查询,为了获得 10 个该类型的模拟对象,您将必须同时模拟查询 和 类型。所以,假设你有一个像 getUsedCars
这样的查询,你真正想要的是:
mocks: {
Query: () => ({
getUsedCars: () => new MockList(10)
}),
UsedCar: () => ({
price: casual.integer(10000, 99999999),
year: casual.integer(1990, 2017),
})
}
编辑: 如果您 仅 模拟该类型,则架构中解析为该类型数组的任何位置都将 return 默认情况下有两个模拟对象,这就是为什么您看到的是两个而不是十个。