Bird
Raised Fist0
GraphQLquery~5 mins

Mocking resolvers in GraphQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a mocking resolver in GraphQL?
A mocking resolver is a fake function that returns sample data instead of real data, used to test or develop GraphQL APIs without a real backend.
Click to reveal answer
beginner
Why use mocking resolvers during GraphQL API development?
They let you build and test the API schema quickly without needing a real database or backend, helping frontend and backend teams work in parallel.
Click to reveal answer
intermediate
How do you define a simple mocking resolver for a 'User' type with a 'name' field?
You write a resolver function that returns a fixed or random name string when the 'name' field is requested, for example:
{ User: { name: () => 'Alice' } }
Click to reveal answer
intermediate
What is the benefit of using libraries like Apollo Server's mocking feature?
They automatically generate fake data for your schema types, saving time and reducing manual work when mocking resolvers.
Click to reveal answer
advanced
Can mocking resolvers simulate errors or delays? Why is this useful?
Yes, mocking resolvers can simulate errors or delays to test how your app handles failures or slow responses, improving robustness.
Click to reveal answer
What does a mocking resolver return in GraphQL?
AReal data from a database
BNothing
CSample or fake data
DAn error always
Which of these is a reason to use mocking resolvers?
ATo encrypt data
BTo slow down API responses
CTo delete real data
DTo speed up frontend development
How can you simulate a delay in a mocking resolver?
ABy using setTimeout or async delay before returning data
BBy returning data immediately
CBy throwing an error
DBy returning null
Which GraphQL server library has built-in mocking support?
AApollo Server
BExpress
CReact
DVue
What is a key limitation of mocking resolvers?
AThey cannot return any data
BThey do not connect to real databases
CThey always cause errors
DThey slow down the server
Explain what mocking resolvers are and why they are useful in GraphQL development.
Think about how you can test an API without a real database.
You got /3 concepts.
    Describe how you would create a mocking resolver for a GraphQL type with multiple fields.
    Consider how each field needs its own fake data function.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of mocking resolvers in GraphQL?
      easy
      A. To simulate API responses without needing real data
      B. To optimize database queries for faster performance
      C. To secure the API by hiding sensitive data
      D. To automatically generate GraphQL schemas

      Solution

      1. Step 1: Understand mocking resolvers

        Mocking resolvers are used to create fake data responses for GraphQL fields without connecting to a real database.
      2. Step 2: Identify the main purpose

        This helps frontend developers test and build UI without waiting for backend data.
      3. Final Answer:

        To simulate API responses without needing real data -> Option A
      4. Quick Check:

        Mocking = Simulate data [OK]
      Hint: Mocks simulate data, not optimize or secure APIs [OK]
      Common Mistakes:
      • Confusing mocking with database optimization
      • Thinking mocks secure the API
      • Assuming mocks generate schemas automatically
      2. Which of the following is the correct way to define a mock resolver for a GraphQL field user that returns a fixed name?
      easy
      A. const mocks = { Query: { user: () => 'Alice' } };
      B. const mocks = { user: { Query: () => 'Alice' } };
      C. const mocks = { Query: { user: 'Alice' } };
      D. const mocks = { Query: { user: () => ({ name: 'Alice' }) } };

      Solution

      1. Step 1: Understand mock resolver structure

        Mock resolvers are objects where the type (e.g., Query) maps to functions returning objects matching the schema.
      2. Step 2: Check the correct syntax

        The user field should be a function returning an object with a name property, so const mocks = { Query: { user: () => ({ name: 'Alice' }) } }; is correct.
      3. Final Answer:

        const mocks = { Query: { user: () => ({ name: 'Alice' }) } }; -> Option D
      4. Quick Check:

        Mock resolver returns object with fields [OK]
      Hint: Mock functions return objects matching schema fields [OK]
      Common Mistakes:
      • Returning a string instead of an object
      • Swapping Query and user keys
      • Not using a function for the resolver
      3. Given the mock resolver below, what will be the output of the GraphQL query { book { title author } }?
      const mocks = {
        Query: {
          book: () => ({ title: '1984', author: 'George Orwell' })
        }
      };
      medium
      A. { "data": { "book": { "title": "1984", "author": "George Orwell" } } }
      B. { "data": { "book": "1984" } }
      C. { "data": { "book": { "title": "1984" } } }
      D. Error: Resolver must return a string

      Solution

      1. Step 1: Analyze the mock resolver return value

        The book resolver returns an object with title and author fields as strings.
      2. Step 2: Match query fields with returned object

        The query requests title and author, both present in the returned object, so the output includes both.
      3. Final Answer:

        { "data": { "book": { "title": "1984", "author": "George Orwell" } } } -> Option A
      4. Quick Check:

        Returned object matches query fields [OK]
      Hint: Mock returns object matching query fields exactly [OK]
      Common Mistakes:
      • Expecting only one field returned
      • Thinking resolver must return string
      • Ignoring requested fields in query
      4. Identify the error in the following mock resolver code snippet:
      const mocks = {
        Query: {
          user: () => {
            name: 'Bob'
          }
        }
      };
      medium
      A. Extra comma after 'name' property
      B. Missing return statement inside the user resolver function
      C. Resolver should return a string, not an object
      D. Incorrect key name; should be 'User' instead of 'user'

      Solution

      1. Step 1: Check function body syntax

        The user resolver uses curly braces but does not return an object explicitly.
      2. Step 2: Understand JavaScript function return rules

        Without a return statement, the function returns undefined, causing the mock to fail.
      3. Final Answer:

        Missing return statement inside the user resolver function -> Option B
      4. Quick Check:

        Functions with braces need explicit return [OK]
      Hint: Use return or parentheses for object in arrow functions [OK]
      Common Mistakes:
      • Assuming implicit return with braces
      • Confusing type names case sensitivity
      • Expecting string return instead of object
      5. You want to mock a GraphQL resolver for a product field that returns a list of products with id and price. Which mock resolver correctly returns two products with ids 1 and 2 and prices 10.5 and 20.0 respectively?
      hard
      A. const mocks = { Query: { product: [{ id: 1, price: 10.5 }, { id: 2, price: 20.0 }] } };
      B. const mocks = { Query: { product: () => ({ id: [1, 2], price: [10.5, 20.0] }) } };
      C. const mocks = { Query: { product: () => [{ id: 1, price: 10.5 }, { id: 2, price: 20.0 }] } };
      D. const mocks = { Query: { product: () => { id: 1; price: 10.5; } } };

      Solution

      1. Step 1: Understand the expected return type

        The product field should return a list (array) of objects, each with id and price fields.
      2. Step 2: Check each option's return value

        const mocks = { Query: { product: () => [{ id: 1, price: 10.5 }, { id: 2, price: 20.0 }] } }; returns an array of two objects with correct fields and values. Others either return wrong types or syntax errors.
      3. Final Answer:

        const mocks = { Query: { product: () => [{ id: 1, price: 10.5 }, { id: 2, price: 20.0 }] } }; -> Option C
      4. Quick Check:

        Return array of objects for list fields [OK]
      Hint: Return array of objects for list fields in mocks [OK]
      Common Mistakes:
      • Returning object with arrays instead of array of objects
      • Assigning array directly without function
      • Missing return or using wrong syntax in function