Bird
Raised Fist0
JUnittesting~10 mins

Code quality gates 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 assert that the method returns true.

JUnit
assertTrue([1]());
Drag options to blanks, or click blank then click option'
AisCodeQualityPassed
BvalidateCode
CcheckQuality
DrunQualityGate
Attempts:
3 left
💡 Hint
Common Mistakes
Using a method that does not return a boolean.
Forgetting to call the method with parentheses.
2fill in blank
medium

Complete the code to fail the test if the code quality gate is not met.

JUnit
if (![1]()) {
    fail("Code quality gate failed");
}
Drag options to blanks, or click blank then click option'
AcheckQualityGate
BisCodeQualityPassed
CvalidateQuality
DrunQualityCheck
Attempts:
3 left
💡 Hint
Common Mistakes
Using a method that does not return a boolean.
Not negating the condition to fail when quality gate fails.
3fill in blank
hard

Fix the error in the assertion to check that the quality gate score is above 80.

JUnit
assertTrue(qualityGate.getScore() [1] 80);
Drag options to blanks, or click blank then click option'
A==
B<
C>
D<=
Attempts:
3 left
💡 Hint
Common Mistakes
Using less than operator which fails the test when score is high.
Using equality operator which is too strict.
4fill in blank
hard

Fill both blanks to create a test that asserts the quality gate status is 'PASSED' and the score is at least 90.

JUnit
assertEquals("[1]", qualityGate.getStatus());
assertTrue(qualityGate.getScore() [2] 90);
Drag options to blanks, or click blank then click option'
APASSED
B>=
C>
DFAILED
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'FAILED' instead of 'PASSED' for status.
Using '>' instead of '>=' for score comparison.
5fill in blank
hard

Fill all three blanks to create a test that checks the quality gate status is 'PASSED', the score is above 85, and the error count is zero.

JUnit
assertEquals("[1]", qualityGate.getStatus());
assertTrue(qualityGate.getScore() [2] 85);
assertEquals([3], qualityGate.getErrorCount());
Drag options to blanks, or click blank then click option'
APASSED
B>
C0
DFAILED
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'FAILED' instead of 'PASSED' for status.
Using '>=' instead of '>' for score comparison.
Using 1 instead of 0 for error count.

Practice

(1/5)
1. What is the main purpose of a code quality gate in a JUnit testing process?
easy
A. To check if the code meets predefined quality standards before merging
B. To automatically deploy code to production
C. To write new JUnit test cases
D. To format the source code automatically

Solution

  1. Step 1: Understand the role of quality gates

    Quality gates are checkpoints that verify if code meets certain quality criteria before it is merged into the main branch.
  2. Step 2: Relate to JUnit testing

    JUnit tests provide results that quality gates use to decide if the code passes or fails the quality standards.
  3. Final Answer:

    To check if the code meets predefined quality standards before merging -> Option A
  4. Quick Check:

    Quality gate purpose = Check code quality before merge [OK]
Hint: Quality gates stop bad code before merge [OK]
Common Mistakes:
  • Confusing quality gates with deployment steps
  • Thinking quality gates write tests automatically
  • Assuming quality gates only format code
2. Which of the following is the correct way to assert that two values are equal in a JUnit 5 test?
easy
A. assertEqual(expected, actual);
B. assertEquals(expected, actual);
C. assertEquals(actual, expected);
D. assertEqual(actual, expected);

Solution

  1. Step 1: Recall JUnit 5 assertion syntax

    The correct method to check equality is assertEquals(expected, actual); with the expected value first.
  2. Step 2: Check method names and parameter order

    Method name must be assertEquals (not assertEqual) and parameters order matters: expected first, actual second.
  3. Final Answer:

    assertEquals(expected, actual); -> Option B
  4. Quick Check:

    assertEquals(expected, actual) is correct [OK]
Hint: Use assertEquals(expected, actual) exactly [OK]
Common Mistakes:
  • Using assertEqual instead of assertEquals
  • Swapping expected and actual parameters
  • Missing parentheses or semicolons
3. Given the following JUnit test snippet, what will be the test result if calculateSum(2, 3) returns 6?
import static org.junit.jupiter.api.Assertions.assertEquals;

@Test
void testSum() {
    assertEquals(5, calculateSum(2, 3));
}
medium
A. Test fails with assertion error
B. Test is skipped
C. Test throws a compilation error
D. Test passes

Solution

  1. Step 1: Understand the assertion

    The test expects calculateSum(2, 3) to return 5, but it returns 6 instead.
  2. Step 2: Determine test outcome

    Since the actual value (6) does not match the expected value (5), the assertion fails and the test fails with an assertion error.
  3. Final Answer:

    Test fails with assertion error -> Option A
  4. Quick Check:

    Expected != Actual causes failure [OK]
Hint: Mismatch expected vs actual fails test [OK]
Common Mistakes:
  • Assuming test passes if values differ
  • Thinking compilation error occurs
  • Believing test is skipped automatically
4. Identify the error in this JUnit 5 test method that prevents the quality gate from passing:
@Test
void testIsPositive() {
    int number = -1;
    assertTrue(number > 0);
}
medium
A. The test method name must start with 'test'
B. The test method is missing the @BeforeEach annotation
C. The assertion condition is incorrect for the test data
D. assertTrue is not a valid JUnit assertion

Solution

  1. Step 1: Analyze the assertion condition

    The test asserts that number > 0 but number is -1, so the condition is false.
  2. Step 2: Understand test failure impact on quality gate

    Because the assertion fails, the test fails and the quality gate will not pass.
  3. Final Answer:

    The assertion condition is incorrect for the test data -> Option C
  4. Quick Check:

    Assertion false causes test failure [OK]
Hint: Check if assertion matches test data truth [OK]
Common Mistakes:
  • Thinking @BeforeEach is required for this test
  • Believing method name must start with 'test'
  • Assuming assertTrue is invalid in JUnit
5. In a continuous integration pipeline using JUnit tests and a code quality gate, which combination best ensures that only well-tested code is merged?
  • 1. All tests must pass
  • 2. Code coverage must be above 80%
  • 3. No critical bugs reported by static analysis
  • 4. Code formatting checks are ignored
hard
A. 2 and 4 only
B. 1 and 4 only
C. All 1, 2, 3, and 4
D. 1, 2, and 3 only

Solution

  1. Step 1: Identify essential quality gate criteria

    Tests passing, high code coverage, and no critical bugs are key to ensuring code quality before merge.
  2. Step 2: Evaluate code formatting importance

    Ignoring code formatting (point 4) can reduce code quality and maintainability, so it should not be ignored.
  3. Final Answer:

    1, 2, and 3 only -> Option D
  4. Quick Check:

    Pass tests + coverage + no bugs = good quality gate [OK]
Hint: Include tests, coverage, and bug checks for quality [OK]
Common Mistakes:
  • Ignoring code formatting importance
  • Assuming only tests passing is enough
  • Thinking code coverage below 80% is acceptable
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