Bird
Raised Fist0
JUnittesting~10 mins

assertDoesNotThrow in JUnit - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check that the method does not throw any exception.

JUnit
assertDoesNotThrow(() -> [1]());
Drag options to blanks, or click blank then click option'
AfailTest
BthrowException
CmyMethod
DnullPointer
Attempts:
3 left
💡 Hint
Common Mistakes
Using a method that actually throws an exception.
Not using a lambda expression.
Calling the method outside the lambda.
2fill in blank
medium

Complete the code to assert that the lambda expression does not throw an exception.

JUnit
assertDoesNotThrow([1]);
Drag options to blanks, or click blank then click option'
A() -> myMethod()
B() -> throwException()
CmyMethod()
DthrowException()
Attempts:
3 left
💡 Hint
Common Mistakes
Passing a method call directly instead of a lambda.
Using a method that throws an exception inside the lambda.
3fill in blank
hard

Fix the error in the assertion to correctly check no exception is thrown.

JUnit
assertDoesNotThrow(() -> [1]);
Drag options to blanks, or click blank then click option'
AmyMethod()
BmyMethod
CthrowException()
DthrowException
Attempts:
3 left
💡 Hint
Common Mistakes
Using method reference without parentheses inside the lambda.
Calling a method that throws an exception.
4fill in blank
hard

Fill both blanks to assert no exception is thrown when calling the method with arguments.

JUnit
assertDoesNotThrow(() -> [1]([2]));
Drag options to blanks, or click blank then click option'
AprocessData
B"input"
C42
DthrowException
Attempts:
3 left
💡 Hint
Common Mistakes
Using a method that throws an exception.
Passing an argument that is not a string literal.
5fill in blank
hard

Fill all three blanks to assert no exception is thrown when calling a method with two arguments.

JUnit
assertDoesNotThrow(() -> [1]([2], [3]));
Drag options to blanks, or click blank then click option'
AcalculateSum
B5
C10
DthrowException
Attempts:
3 left
💡 Hint
Common Mistakes
Using a method that throws exceptions.
Passing arguments in the wrong order.

Practice

(1/5)
1. What is the main purpose of assertDoesNotThrow in JUnit testing?
easy
A. To assert that a method returns a specific value
B. To check that a block of code runs without throwing any exceptions
C. To verify that a specific exception is thrown by the code
D. To measure the execution time of a code block

Solution

  1. Step 1: Understand the purpose of assertDoesNotThrow

    This assertion is designed to confirm that no exceptions occur when running a code block.
  2. Step 2: Compare with other assertions

    Unlike assertions that check for exceptions or return values, assertDoesNotThrow ensures smooth execution without errors.
  3. Final Answer:

    To check that a block of code runs without throwing any exceptions -> Option B
  4. Quick Check:

    assertDoesNotThrow means no exceptions thrown [OK]
Hint: Remember: assertDoesNotThrow means code runs without errors [OK]
Common Mistakes:
  • Confusing assertDoesNotThrow with assertThrows
  • Thinking it checks return values
  • Assuming it measures performance
2. Which of the following is the correct syntax to use assertDoesNotThrow in JUnit 5?
easy
A. assertDoesNotThrow(methodToTest());
B. assertDoesNotThrow { methodToTest() };
C. assertDoesNotThrow(() -> methodToTest());
D. assertDoesNotThrow(methodToTest);

Solution

  1. Step 1: Recall the lambda syntax for assertDoesNotThrow

    assertDoesNotThrow expects a lambda expression or executable block, written as () -> methodToTest().
  2. Step 2: Identify incorrect options

    Options A, C, and D use incorrect syntax: A calls the method directly, C uses braces like other languages, D passes method reference without lambda.
  3. Final Answer:

    assertDoesNotThrow(() -> methodToTest()); -> Option C
  4. Quick Check:

    Use lambda () -> method() with assertDoesNotThrow [OK]
Hint: Use lambda syntax () -> method() inside assertDoesNotThrow [OK]
Common Mistakes:
  • Calling the method directly inside assertDoesNotThrow
  • Using curly braces instead of lambda arrows
  • Passing method name without parentheses or lambda
3. What will be the result of this JUnit test?
assertDoesNotThrow(() -> { int x = 5 / 1; });
medium
A. Test fails due to syntax error
B. Test fails due to ArithmeticException
C. Test fails due to NullPointerException
D. Test passes because no exception is thrown

Solution

  1. Step 1: Analyze the code inside assertDoesNotThrow

    The code divides 5 by 1, which is valid and does not throw any exception.
  2. Step 2: Understand assertDoesNotThrow behavior

    Since no exception occurs, the assertion passes and the test succeeds.
  3. Final Answer:

    Test passes because no exception is thrown -> Option D
  4. Quick Check:

    Division by 1 is safe, so no exception [OK]
Hint: Check if code inside lambda throws exception or not [OK]
Common Mistakes:
  • Assuming division always throws exception
  • Confusing ArithmeticException with other exceptions
  • Thinking assertDoesNotThrow checks return values
4. Identify the error in this JUnit test using assertDoesNotThrow:
assertDoesNotThrow(() -> { int y = 10 / 0; });
medium
A. ArithmeticException will cause test to fail
B. No error; test will pass
C. Syntax error due to missing semicolon
D. NullPointerException will cause test to fail

Solution

  1. Step 1: Examine the code inside assertDoesNotThrow

    The code divides 10 by 0, which causes an ArithmeticException at runtime.
  2. Step 2: Understand assertDoesNotThrow behavior on exceptions

    assertDoesNotThrow expects no exceptions; if one occurs, the test fails.
  3. Final Answer:

    ArithmeticException will cause test to fail -> Option A
  4. Quick Check:

    Division by zero throws ArithmeticException [OK]
Hint: Division by zero throws exception, so test fails [OK]
Common Mistakes:
  • Thinking test passes despite exception
  • Confusing exception types
  • Ignoring runtime exceptions inside lambda
5. You want to test a method processData() that may throw a checked exception. How do you use assertDoesNotThrow to verify it runs without exceptions?
hard
A. assertDoesNotThrow(() -> processData());
B. assertDoesNotThrow(processData());
C. assertDoesNotThrow(() -> { try { processData(); } catch(Exception e) {} });
D. assertDoesNotThrow(() -> { processData() });

Solution

  1. Step 1: Understand handling checked exceptions in lambdas

    assertDoesNotThrow accepts an Executable, whose execute() method throws Throwable, so checked exceptions are permitted in the lambda.
  2. Step 2: Identify the correct lambda syntax

    The standard syntax is a concise lambda: () -> processData().
  3. Step 3: Evaluate options

    A: correct single-expression lambda. B: direct method call without lambda. C: catches exceptions inside lambda, hiding potential failures. D: syntax error due to missing semicolon after processData() in the block lambda.
  4. Final Answer:

    assertDoesNotThrow(() -> processData()); -> Option A
  5. Quick Check:

    Lambda () -> processData() handles checked exceptions correctly [OK]
Hint: Use lambda syntax () -> processData() inside assertDoesNotThrow [OK]
Common Mistakes:
  • Calling method directly without lambda
  • Syntax errors like missing semicolon in block lambdas
  • Catching exceptions inside lambda hiding test failures
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