Bird
Raised Fist0
JUnittesting~15 mins

assertTrue and assertFalse in JUnit - Build an Automation Script

Choose your learning style10 modes available
Verify boolean conditions using assertTrue and assertFalse in JUnit
Preconditions (2)
Step 1: Call the method that returns true and verify the result using assertTrue
Step 2: Call the method that returns false and verify the result using assertFalse
✅ Expected Result: The test passes when assertTrue confirms the condition is true and assertFalse confirms the condition is false
Automation Requirements - JUnit 5
Assertions Needed:
assertTrue to verify a condition is true
assertFalse to verify a condition is false
Best Practices:
Use descriptive test method names
Keep tests independent and simple
Use static imports for assertions for readability
Automated Solution
JUnit
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.assertFalse;
import org.junit.jupiter.api.Test;

public class BooleanConditionTest {

    // Method that returns true
    public boolean isEven(int number) {
        return number % 2 == 0;
    }

    // Method that returns false
    public boolean isOdd(int number) {
        return number % 2 == 0;
    }

    @Test
    public void testAssertTrue() {
        // 4 is even, so isEven should return true
        assertTrue(isEven(4), "Expected 4 to be even");
    }

    @Test
    public void testAssertFalse() {
        // 5 is odd, so isOdd should return false (since it returns true for even)
        assertFalse(isOdd(5), "Expected 5 to be odd, so isOdd should be false here");
    }
}

This test class has two methods: isEven returns true if a number is even, and isOdd incorrectly returns true if a number is even (to demonstrate assertFalse).

The testAssertTrue method uses assertTrue to check that isEven(4) returns true because 4 is even.

The testAssertFalse method uses assertFalse to check that isOdd(5) returns false because 5 is odd and isOdd returns true only for even numbers (so it returns false for 5).

Static imports make the assertions easier to read. Each test has a clear message to explain failure if it happens.

Common Mistakes - 4 Pitfalls
Using asserttrue with a false condition
Using assertfalse with a true condition
Not providing a failure message in assertions
Mixing asserttrue and assertfalse on the same condition without clear logic
Bonus Challenge

Now add data-driven testing with 3 different numbers to check even and odd using assertTrue and assertFalse

Show Hint

Practice

(1/5)
1. What does the JUnit method assertTrue(condition) check in a test?
easy
A. It checks if the condition is false.
B. It checks if the condition is true.
C. It checks if the condition is null.
D. It checks if the condition throws an exception.

Solution

  1. Step 1: Understand the purpose of assertTrue

    The method assertTrue is designed to verify that a given boolean condition is true during a test.
  2. Step 2: Compare with other assertions

    Unlike assertFalse which checks for false, assertTrue specifically expects the condition to be true.
  3. Final Answer:

    It checks if the condition is true. -> Option B
  4. Quick Check:

    assertTrue means condition must be true [OK]
Hint: assertTrue expects true condition, assertFalse expects false [OK]
Common Mistakes:
  • Confusing assertTrue with assertFalse
  • Thinking assertTrue checks for exceptions
  • Assuming assertTrue checks for null
2. Which of the following is the correct syntax to assert that a boolean variable isValid is false in JUnit?
easy
A. assertTrue(isValid);
B. assertFalse(isValid == false);
C. assertFalse(isValid);
D. assertTrue(isValid == true);

Solution

  1. Step 1: Identify the correct assertion method

    To check if isValid is false, we use assertFalse with the variable directly.
  2. Step 2: Evaluate the options

    assertFalse(isValid); correctly asserts the variable is false. Other options use the wrong assertion method or incorrect comparisons that fail to properly verify the variable is false.
  3. Final Answer:

    assertFalse(isValid); -> Option C
  4. Quick Check:

    Use assertFalse(variable) to check false [OK]
Hint: Use assertFalse(variable) directly to check false [OK]
Common Mistakes:
  • Using assertTrue to check false
  • Adding unnecessary comparisons like == true or == false
  • Confusing assertTrue and assertFalse syntax
3. Consider the following JUnit test code:
boolean isActive = (5 > 3);
assertTrue(isActive);
assertFalse(isActive == false);

What will be the result of running this test?
medium
A. Test passes without errors.
B. Test fails at assertTrue.
C. Test fails at assertFalse.
D. Test throws a compilation error.

Solution

  1. Step 1: Evaluate the boolean expression

    The expression 5 > 3 is true, so isActive is true.
  2. Step 2: Check assertions with isActive = true

    assertTrue(isActive); passes because isActive is true.
    assertFalse(isActive == false); also passes because isActive == false is false, so assertFalse(false) passes.
  3. Final Answer:

    Test passes without errors. -> Option A
  4. Quick Check:

    True condition passes assertTrue and assertFalse(false) passes [OK]
Hint: True variable passes assertTrue and assertFalse(false) [OK]
Common Mistakes:
  • Thinking assertFalse fails when condition is false
  • Confusing assertTrue and assertFalse logic
  • Misreading boolean expressions
4. Identify the error in this JUnit test snippet:
boolean isReady = false;
assertTrue(isReady);
medium
A. assertTrue fails because isReady is false.
B. Variable isReady should be true for assertTrue.
C. Syntax error in assertTrue usage.
D. No error, test will pass.

Solution

  1. Step 1: Analyze the variable value

    isReady is set to false.
  2. Step 2: Understand assertTrue behavior

    assertTrue(isReady); expects the condition to be true, but it is false, so the assertion fails.
  3. Final Answer:

    assertTrue fails because isReady is false. -> Option A
  4. Quick Check:

    assertTrue(false) causes test failure [OK]
Hint: assertTrue fails if condition is false [OK]
Common Mistakes:
  • Assuming assertTrue passes with false
  • Confusing assertion failure with syntax error
  • Not checking variable value before assertion
5. You want to write a JUnit test to verify that a method isEmpty(String s) returns false when the string is not empty. Which assertion correctly tests this?
hard
A. assertFalse(isEmpty(""));
B. assertTrue(isEmpty("hello") == true);
C. assertTrue(isEmpty("hello"));
D. assertFalse(isEmpty("hello"));

Solution

  1. Step 1: Understand the method behavior

    isEmpty("hello") should return false because the string is not empty.
  2. Step 2: Choose the assertion that expects false

    To verify the method returns false, use assertFalse(isEmpty("hello")); which passes if the method returns false.
  3. Final Answer:

    assertFalse(isEmpty("hello")); -> Option D
  4. Quick Check:

    Use assertFalse to check method returns false [OK]
Hint: Use assertFalse to check method returns false [OK]
Common Mistakes:
  • Using assertTrue expecting false result
  • Testing empty string instead of non-empty
  • Mixing up assertTrue and assertFalse usage
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