Bird
Raised Fist0
JUnittesting~20 mins

assumeTrue and assumeFalse in JUnit - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Assumptions Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the test execution result of this JUnit code snippet?
Consider the following JUnit 5 test method using assumeTrue. What will be the test execution result?
JUnit
import static org.junit.jupiter.api.Assumptions.assumeTrue;
import org.junit.jupiter.api.Test;

public class SampleTest {
    @Test
    void testAssumption() {
        assumeTrue(2 + 2 == 4);
        System.out.println("Assumption passed");
    }
}
ATest passes and prints 'Assumption passed'
BTest is skipped because the assumption fails
CTest fails with an AssertionError
DTest throws a runtime exception
Attempts:
2 left
💡 Hint
assumeTrue continues test only if condition is true
❓ Predict Output
intermediate
2:00remaining
What happens when assumeFalse condition is true in this test?
Look at this JUnit 5 test method using assumeFalse. What will be the test execution result?
JUnit
import static org.junit.jupiter.api.Assumptions.assumeFalse;
import org.junit.jupiter.api.Test;

public class SampleTest {
    @Test
    void testAssumptionFalse() {
        assumeFalse(5 > 3);
        System.out.println("Assumption false passed");
    }
}
ATest passes and prints 'Assumption false passed'
BTest fails with an AssertionError
CTest throws a runtime exception
DTest is skipped because the assumption fails
Attempts:
2 left
💡 Hint
assumeFalse skips test if condition is true
❓ assertion
advanced
2:00remaining
Which assertion correctly uses assumeTrue to skip test if environment variable is missing?
You want to skip a test if the environment variable 'ENV' is not set. Which assumeTrue statement achieves this?
AassumeFalse(System.getenv("ENV") == null);
BassumeTrue(System.getenv("ENV") == null);
CassumeTrue(System.getenv("ENV") != null);
DassumeFalse(System.getenv("ENV") != null);
Attempts:
2 left
💡 Hint
assumeTrue continues only if condition is true
🔧 Debug
advanced
2:00remaining
Why does this test never run its assertions?
Examine this JUnit 5 test method. Why are the assertions never executed?
JUnit
import static org.junit.jupiter.api.Assumptions.assumeTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;

public class SampleTest {
    @Test
    void testSkipped() {
        assumeTrue(false);
        assertEquals(5, 2 + 3);
    }
}
AassertEquals is incorrectly used and throws an exception
BassumeTrue(false) causes the test to be skipped before assertions
CTest method is missing @Test annotation
DassumeTrue does not affect test execution
Attempts:
2 left
💡 Hint
assumeTrue skips test if condition is false
🧠 Conceptual
expert
2:00remaining
What is the main difference between assumeTrue and assertTrue in JUnit?
Choose the best explanation of how assumeTrue differs from assertTrue in JUnit testing.
AassumeTrue skips the test if condition is false; assertTrue fails the test if condition is false
BBoth assumeTrue and assertTrue skip the test if condition is false
CassumeTrue fails the test if condition is false; assertTrue skips the test if condition is false
DBoth assumeTrue and assertTrue fail the test if condition is false
Attempts:
2 left
💡 Hint
Think about test skipping versus test failure

Practice

(1/5)
1.

What happens when assumeTrue(condition) is used in a JUnit test and the condition is false?

easy
A. The test is skipped and marked as ignored.
B. The test fails with an assertion error.
C. The test passes regardless of the condition.
D. The test runs normally without any effect.

Solution

  1. Step 1: Understand assumeTrue behavior

    assumeTrue(condition) runs the test only if the condition is true; otherwise, it skips the test.
  2. Step 2: Apply condition false scenario

    If the condition is false, the test is skipped and marked as ignored, not failed.
  3. Final Answer:

    The test is skipped and marked as ignored. -> Option A
  4. Quick Check:

    assumeTrue(false) skips test [OK]
Hint: assumeTrue skips test if condition is false [OK]
Common Mistakes:
  • Thinking assumeTrue fails the test on false condition
  • Confusing assumeTrue with assertTrue
  • Assuming test runs normally regardless
2.

Which of the following is the correct syntax to skip a test in JUnit if a boolean variable isReady is false?

boolean isReady = false;
easy
A. assumeFalse(isReady);
B. assumeTrue(isReady);
C. assumeTrue(!isReady);
D. assumeFalse(!isReady);

Solution

  1. Step 1: Understand the goal

    We want to skip the test if isReady is false, so the test should run only if isReady is true.
  2. Step 2: Choose correct assume method

    assumeTrue(isReady); runs the test only if isReady is true; otherwise, it skips the test.
  3. Final Answer:

    assumeTrue(isReady); -> Option B
  4. Quick Check:

    Skip if false = assumeTrue(true) runs [OK]
Hint: Use assumeTrue(variable) to run only if true [OK]
Common Mistakes:
  • Using assumeFalse(isReady) which skips when true
  • Negating variable incorrectly
  • Confusing assumeTrue and assumeFalse usage
3.

Consider the following JUnit test snippet:

import static org.junit.jupiter.api.Assumptions.*;

@Test
void testFeature() {
    assumeFalse(System.getProperty("os.name").startsWith("Windows"));
    assertTrue(true);
}

What happens when this test runs on a Windows machine?

medium
A. The test runs and passes because the assumption is true.
B. The test fails because the assumption is false.
C. The test is skipped because the assumption is false.
D. The test runs and fails because assertTrue is false.

Solution

  1. Step 1: Evaluate the assumption on Windows

    On Windows, System.getProperty("os.name") starts with "Windows", so assumeFalse(true) is called.
  2. Step 2: Understand assumeFalse behavior

    assumeFalse(true) causes the test to be skipped, not failed.
  3. Final Answer:

    The test is skipped because the assumption is false. -> Option C
  4. Quick Check:

    assumeFalse(true) skips test [OK]
Hint: assumeFalse(true) skips test [OK]
Common Mistakes:
  • Thinking test fails on failed assumption
  • Confusing assumeFalse with assertFalse
  • Ignoring OS check effect
4.

Identify the error in the following JUnit test code snippet:

import static org.junit.jupiter.api.Assumptions.*;

@Test
void testExample() {
    assumeTrue();
    assertEquals(5, 2 + 3);
}
medium
A. assertEquals is used incorrectly without expected value.
B. Static import of assumptions is missing.
C. The test method must return a boolean.
D. assumeTrue requires a boolean condition argument.

Solution

  1. Step 1: Check assumeTrue usage

    assumeTrue() is called without any argument, but it requires a boolean condition.
  2. Step 2: Verify other parts

    assertEquals(5, 2 + 3); is correct; static import is present.
  3. Final Answer:

    assumeTrue requires a boolean condition argument. -> Option D
  4. Quick Check:

    assumeTrue(condition) needs argument [OK]
Hint: assumeTrue always needs a boolean argument [OK]
Common Mistakes:
  • Calling assumeTrue without argument
  • Confusing assumeTrue with assertTrue
  • Ignoring compiler errors on missing argument
5.

You want to write a JUnit test that only runs on Linux systems and skips on others. Which code snippet correctly uses assumeTrue or assumeFalse to achieve this?

hard
A. assumeTrue(System.getProperty("os.name").startsWith("Linux"));
B. assumeFalse(System.getProperty("os.name").startsWith("Linux"));
C. assumeTrue(!System.getProperty("os.name").startsWith("Linux"));
D. assumeFalse(!System.getProperty("os.name").startsWith("Linux"));

Solution

  1. Step 1: Define the condition for Linux

    The test should run only if the OS name starts with "Linux".
  2. Step 2: Use assumeTrue with Linux condition

    assumeTrue(System.getProperty("os.name").startsWith("Linux")); runs the test only on Linux, skips otherwise.
  3. Final Answer:

    assumeTrue(System.getProperty("os.name").startsWith("Linux")); -> Option A
  4. Quick Check:

    Run only if Linux = assumeTrue(Linux) [OK]
Hint: Use assumeTrue with positive condition to run test [OK]
Common Mistakes:
  • Using assumeFalse with Linux condition incorrectly
  • Negating condition wrongly
  • Confusing assumeTrue and assumeFalse logic
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