Я создал resolvers(userresolver.js), используя npm-модуль аполлон-резольверы, как показано ниже.
import { createResolver } from 'apollo-resolvers';
import { isInstance } from 'apollo-errors';
const baseResolver = createResolver(
null,
(root, args, context, error) => isInstance(error) ? error : new UnknownError()
);
const users = baseResolver.createResolver(
(parent, args, { models, me } ) => {
return Object.values(models.users);
}
);
export default {
Query: {
users
}
}
;
Они также отлично работают, когда я тестирую запросы после запуска сервера.
Теперь я хочу провести модульное тестирование функций преобразователя.
Я не уверен, как это сделать. Может ли кто-нибудь помочь мне в том, как выполнить модульное тестирование функций преобразователя. Я использую мокко с чаi для тестирования своего проекта.





Вы можете попробовать easygraphql-тестер, у него есть метод, который поможет вам протестировать распознаватели.
Здесь это документация.
"use strict";
const license = (__, args, ctx) => {
const { key } = args;
return {
id: "1234",
body: "This is a test license",
description: `This is a description with key ${key}`
};
};
module.exports = {
Query: {
license
}
};
"use strict";
const fs = require("fs");
const path = require("path");
const { expect } = require("chai");
const EasyGraphQLTester = require("easygraphql-tester");
const resolvers = require("../resolvers");
const schemaCode = fs.readFileSync(
path.join(__dirname, "..", "schema.gql"),
"utf8"
);
describe("Test resolvers", () => {
let tester;
beforeAll(() => {
tester = new EasyGraphQLTester(schemaCode, resolvers);
});
it("should return expected values", async () => {
const query = `
query GET_LICENSE($key: String!) {
license(key: $key) {
id
body
description
}
}
`;
const args = {
key: "1234"
};
const result = await tester.graphql(query, {}, {}, args);
expect(result.data.license.id).to.be.eq("1234");
expect(result.data.license.body).to.be.eq("This is a test license");
expect(result.data.license.description).to.be.eq(
`This is a description with key ${args.key}`
);
});
});
Может быть, этот пример может быть полезен!
Не уверен, что это соответствует требованию. для кодов распознавателей модульного тестирования. Похоже, это для тестирования интеграции/E2E.