Bird
Raised Fist0
JUnittesting~10 mins

Why CI integration enables continuous quality in JUnit - Test Your Understanding

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

Complete the code to run a simple JUnit test method.

JUnit
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class CalculatorTest {
    @Test
    public void testAddition() {
        int result = 2 + 3;
        assertEquals([1], result);
    }
}
Drag options to blanks, or click blank then click option'
A7
B6
C4
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong expected value in assertEquals.
Confusing actual and expected parameters.
2fill in blank
medium

Complete the code to annotate a method as a JUnit test.

JUnit
import org.junit.jupiter.api.Test;

public class SampleTest {
    [1]
    public void sampleMethod() {
        // test code here
    }
}
Drag options to blanks, or click blank then click option'
A@BeforeEach
B@Disabled
C@Test
D@AfterAll
Attempts:
3 left
💡 Hint
Common Mistakes
Using setup or teardown annotations instead of @Test.
Forgetting to annotate the test method.
3fill in blank
hard

Fix the error in the assertion to correctly check string equality.

JUnit
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class StringTest {
    @Test
    public void testGreeting() {
        String greeting = "Hello";
        assertEquals([1], greeting);
    }
}
Drag options to blanks, or click blank then click option'
A"Hello"
B"hello"
Cgreeting.toLowerCase()
Dnull
Attempts:
3 left
💡 Hint
Common Mistakes
Using a different case in the expected string.
Passing null or unrelated strings.
4fill in blank
hard

Fill both blanks to create a test that fails if the number is not positive.

JUnit
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertTrue;

public class NumberTest {
    @Test
    public void testPositive() {
        int number = -5;
        assertTrue(number [1] [2]);
    }
}
Drag options to blanks, or click blank then click option'
A>
B0
C<
D-1
Attempts:
3 left
💡 Hint
Common Mistakes
Using less than instead of greater than.
Comparing to -1 instead of 0.
5fill in blank
hard

Fill all three blanks to create a test that checks if a list contains a specific element.

JUnit
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.List;

public class ListTest {
    @Test
    public void testContains() {
        List<String> fruits = List.of("apple", "banana", "cherry");
        assertTrue(fruits.[1]([2]), "List should contain [3].");
    }
}
Drag options to blanks, or click blank then click option'
Acontains
B"banana"
Cbanana
D"apple"
Attempts:
3 left
💡 Hint
Common Mistakes
Using the element without quotes causing a compile error.
Using the wrong method name.
Mismatch between the element checked and the message.

Practice

(1/5)
1. Why does integrating JUnit tests into a Continuous Integration (CI) system help maintain software quality?
easy
A. Because it slows down the development process
B. Because it allows developers to skip writing tests
C. Because tests run automatically on every code change, catching errors early
D. Because it only runs tests manually when requested

Solution

  1. Step 1: Understand CI automation

    CI systems automatically run tests whenever code changes are made, ensuring immediate feedback.
  2. Step 2: Recognize early error detection

    Running tests frequently helps find bugs early before they reach production.
  3. Final Answer:

    Because tests run automatically on every code change, catching errors early -> Option C
  4. Quick Check:

    CI auto-tests = early bug catch [OK]
Hint: CI runs tests automatically to catch bugs early [OK]
Common Mistakes:
  • Thinking tests run only manually in CI
  • Believing CI integration slows development
  • Assuming tests are optional with CI
2. Which of the following is the correct JUnit 5 annotation to mark a method as a test that CI should run?
easy
A. @Test
B. @TestMethod
C. @RunTest
D. @Check

Solution

  1. Step 1: Recall JUnit 5 test annotation

    The standard annotation to mark a test method in JUnit 5 is @Test.
  2. Step 2: Verify other options

    @TestMethod, @RunTest, and @Check are not valid JUnit 5 annotations.
  3. Final Answer:

    @Test -> Option A
  4. Quick Check:

    JUnit test method = @Test [OK]
Hint: JUnit test methods always use @Test annotation [OK]
Common Mistakes:
  • Using incorrect or made-up annotations
  • Confusing JUnit 4 and 5 annotations
  • Forgetting the @ symbol
3. Given this JUnit test snippet run in CI:
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;

class CalculatorTest {
  @Test
  void addTest() {
    assertEquals(5, 2 + 3);
  }
}

What will be the test result when CI runs this?
medium
A. Test passes successfully
B. Test fails due to wrong assertion
C. Compilation error due to missing imports
D. Test skipped automatically

Solution

  1. Step 1: Analyze the assertion

    The assertion checks if 2 + 3 equals 5, which is true.
  2. Step 2: Confirm test setup

    All necessary imports and annotations are correct, so the test runs without errors.
  3. Final Answer:

    Test passes successfully -> Option A
  4. Quick Check:

    2+3=5 assertion passes [OK]
Hint: Check if assertion matches expected result [OK]
Common Mistakes:
  • Assuming test fails without checking assertion
  • Thinking imports are missing
  • Believing tests skip without reason
4. A CI pipeline runs JUnit tests but reports failures even though the code is correct. Which is the most likely cause?
medium
A. Tests use assertions that always pass
B. JUnit tests are missing the @Test annotation
C. The CI system is not configured to run tests
D. The test methods are private instead of public

Solution

  1. Step 1: Check test annotations

    Without @Test annotation, JUnit does not recognize methods as tests, causing failures or no tests run.
  2. Step 2: Evaluate other options

    CI running tests incorrectly or private methods cause issues, but missing @Test is the most common cause of false failures.
  3. Final Answer:

    JUnit tests are missing the @Test annotation -> Option B
  4. Quick Check:

    Missing @Test = test not run/fail [OK]
Hint: Always add @Test to test methods [OK]
Common Mistakes:
  • Assuming CI never runs tests
  • Thinking private methods run as tests
  • Ignoring missing annotations
5. In a CI environment, how does running JUnit tests on every pull request improve continuous quality beyond manual testing?
hard
A. It delays the release process by adding unnecessary steps
B. It allows developers to merge code without any review
C. It replaces the need for any manual testing or code review
D. It ensures all code changes are tested automatically before merging, preventing bugs from entering main code

Solution

  1. Step 1: Understand CI pull request testing

    Running tests on every pull request automatically checks new code before merging.
  2. Step 2: Recognize benefits over manual testing

    This automation prevents bugs from entering the main branch, improving quality continuously and reliably.
  3. Final Answer:

    It ensures all code changes are tested automatically before merging, preventing bugs from entering main code -> Option D
  4. Quick Check:

    Auto-test on PR = prevent buggy merges [OK]
Hint: Auto-test PRs stop bugs before merge [OK]
Common Mistakes:
  • Thinking CI replaces all manual reviews
  • Believing CI slows down releases
  • Assuming tests run only after merging
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