Bird
Raised Fist0
JUnittesting~5 mins

Mock objects in JUnit - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a mock object in unit testing?
A mock object is a fake version of a real object used in tests to simulate behavior and control interactions without using the real object.
Click to reveal answer
beginner
Why do we use mock objects in tests?
We use mock objects to isolate the code being tested, avoid dependencies on external systems, and test specific behaviors easily.
Click to reveal answer
beginner
In JUnit with Mockito, how do you create a mock object?
You create a mock object using Mockito.mock(ClassName.class), for example: UserService mockService = Mockito.mock(UserService.class);
Click to reveal answer
intermediate
What is the difference between a mock and a stub?
A stub provides predefined responses to calls, while a mock also verifies that certain methods were called with expected arguments.
Click to reveal answer
intermediate
How do you verify that a method was called on a mock object in Mockito?
Use Mockito.verify(mockObject).methodName(arguments) to check if the method was called with the expected arguments.
Click to reveal answer
What is the main purpose of using mock objects in unit tests?
ATo isolate the unit under test from external dependencies
BTo slow down the test execution
CTo replace the entire application
DTo write production code
Which Mockito method creates a mock object?
AMockito.mock()
BMockito.create()
CMockito.fake()
DMockito.stub()
How do you check if a method was called on a mock in Mockito?
AMockito.check()
BMockito.call()
CMockito.assert()
DMockito.verify()
What is a stub compared to a mock?
AThey are exactly the same
BA stub verifies method calls, a mock provides responses
CA stub provides predefined responses, a mock verifies method calls
DA stub is used only in integration tests
Which of these is NOT a benefit of using mock objects?
AFaster test execution
BTesting real database performance
CIsolating tests from external systems
DControlling test scenarios easily
Explain what a mock object is and why it is useful in unit testing.
Think about how you can test a part of your code without using the real parts it depends on.
You got /4 concepts.
    Describe how you create and verify a mock object method call using Mockito in JUnit.
    Remember the two main steps: make the fake object, then check if it was used as expected.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using mock objects in JUnit testing?
      easy
      A. To speed up the compilation of test classes
      B. To simulate real objects and control their behavior during tests
      C. To replace the JUnit framework with a simpler tool
      D. To automatically generate test data without coding

      Solution

      1. Step 1: Understand the role of mock objects

        Mock objects imitate real objects to isolate the code being tested and control responses.
      2. Step 2: Identify the main benefit in testing

        This helps test code without relying on actual implementations or external systems.
      3. Final Answer:

        To simulate real objects and control their behavior during tests -> Option B
      4. Quick Check:

        Mock objects = simulate and control behavior [OK]
      Hint: Mocks simulate objects to isolate tests quickly [OK]
      Common Mistakes:
      • Thinking mocks speed up compilation
      • Confusing mocks with test data generators
      • Believing mocks replace the JUnit framework
      2. Which of the following is the correct way to create a mock object using Mockito in JUnit?
      easy
      A. MyClass mock = mock(MyClass.class);
      B. MyClass mock = new MyClass().mock();
      C. Mock<MyClass> mock = new Mock<>();
      D. MyClass mock = createMock(MyClass);

      Solution

      1. Step 1: Recall Mockito syntax for creating mocks

        Mockito uses mock(Class.class) to create mock objects.
      2. Step 2: Match the syntax to options

        MyClass mock = mock(MyClass.class); matches the correct syntax: MyClass mock = mock(MyClass.class);
      3. Final Answer:

        MyClass mock = mock(MyClass.class); -> Option A
      4. Quick Check:

        Mockito mock creation = mock(Class.class) [OK]
      Hint: Use mock(Class.class) to create mocks in Mockito [OK]
      Common Mistakes:
      • Using new Mock<>() which is not valid
      • Calling mock() on an instance
      • Using createMock which is not Mockito syntax
      3. Given the following code snippet, what will result be after execution?
      List<String> mockList = mock(List.class);
      when(mockList.size()).thenReturn(5);
      int result = mockList.size();
      medium
      A. 5
      B. 0
      C. Throws NullPointerException
      D. Returns the actual size of a real list

      Solution

      1. Step 1: Understand the mock setup

        The mock list's size() method is stubbed to return 5 when called.
      2. Step 2: Evaluate the method call

        Calling mockList.size() returns 5 as per the stub, not the real list size.
      3. Final Answer:

        5 -> Option A
      4. Quick Check:

        Stubbed method returns set value 5 [OK]
      Hint: Stubbed methods return specified values, not defaults [OK]
      Common Mistakes:
      • Expecting default 0 for int return
      • Thinking mock calls throw exceptions by default
      • Confusing mock with real object behavior
      4. Identify the error in the following JUnit test code using Mockito:
      MyService service = mock(MyService.class);
      when(service.getData()).thenReturn("data");
      verify(service).getData();
      medium
      A. No error, code is correct
      B. Incorrect use of mock() method
      C. Cannot verify void methods
      D. Missing call to service.getData() before verify

      Solution

      1. Step 1: Understand verify usage in Mockito

        Verification checks if a method was called on the mock during the test.
      2. Step 2: Check if method was called before verify

        The code never calls service.getData() before verify, so verification fails.
      3. Final Answer:

        Missing call to service.getData() before verify -> Option D
      4. Quick Check:

        Verify requires method call before checking [OK]
      Hint: Always call method before verify to avoid errors [OK]
      Common Mistakes:
      • Verifying without calling the method
      • Confusing mock creation syntax
      • Thinking verify only works on void methods
      5. You want to test a method that calls a dependency twice with different inputs and expects different outputs. How do you configure a mock to return "first" on the first call and "second" on the second call to getValue()?
      hard
      A. when(mock.getValue()).thenReturn("first"); when(mock.getValue()).thenReturn("second");
      B. when(mock.getValue()).thenReturn(new String[]{"first", "second"});
      C. when(mock.getValue()).thenReturn("first").thenReturn("second");
      D. when(mock.getValue()).thenReturn("second").thenReturn("first");

      Solution

      1. Step 1: Recall Mockito chaining for multiple returns

        Mockito allows chaining thenReturn() calls to specify sequential return values.
      2. Step 2: Match chaining syntax to options

        when(mock.getValue()).thenReturn("first").thenReturn("second"); matches the correct chaining syntax for sequential calls.
      3. Final Answer:

        when(mock.getValue()).thenReturn("first").thenReturn("second"); -> Option C
      4. Quick Check:

        Chain thenReturn() for multiple call returns [OK]
      Hint: Chain thenReturn() calls for sequential mock returns [OK]
      Common Mistakes:
      • Passing multiple values in one thenReturn() call
      • Overwriting stubs instead of chaining
      • Reversing the order of return values
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard