Challenge - 5 Problems
Arrange-Act-Assert Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
What is the output of this JUnit test?
Consider the following JUnit test method using the Arrange-Act-Assert pattern. What will be the test result after execution?
JUnit
import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; class CalculatorTest { @Test void testAdd() { // Arrange Calculator calc = new Calculator(); int a = 5; int b = 3; // Act int result = calc.add(a, b); // Assert assertEquals(8, result); } } class Calculator { int add(int x, int y) { return x + y; } }
Attempts:
2 left
💡 Hint
Check the add method logic and the expected assertion value.
✗ Incorrect
The add method correctly returns the sum of 5 and 3, which is 8. The assertion expects 8, so the test passes.
❓ assertion
intermediate1:30remaining
Which assertion correctly follows the Assert step in Arrange-Act-Assert?
You have arranged and acted by calling a method that returns a list of 3 items. Which assertion correctly verifies the list size?
JUnit
List<String> items = List.of("apple", "banana", "cherry");
Attempts:
2 left
💡 Hint
Check which assertion compares the expected size to the actual size.
✗ Incorrect
assertEquals(3, items.size()) correctly checks that the list has exactly 3 items, matching the expected count.
🔧 Debug
advanced2:30remaining
Identify the problem in this Arrange-Act-Assert test method
This JUnit test method is intended to test subtraction but fails unexpectedly. What is the main issue?
JUnit
import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; class CalculatorTest { @Test void testSubtract() { // Arrange Calculator calc = new Calculator(); int a = 10; int b = 4; // Act int result = calc.add(a, b); // Assert assertEquals(6, result); } } class Calculator { int add(int x, int y) { return x + y; } }
Attempts:
2 left
💡 Hint
Check which method is called in the Act step versus what the test intends.
✗ Incorrect
The test intends to subtract but calls add in the Act step, causing the assertion to fail.
🧠 Conceptual
advanced1:30remaining
Why is the Arrange-Act-Assert pattern important in unit testing?
Choose the best explanation for why the Arrange-Act-Assert pattern is used in writing unit tests.
Attempts:
2 left
💡 Hint
Think about how clear structure helps when reading or fixing tests later.
✗ Incorrect
Arrange-Act-Assert separates test steps clearly, making tests easier to understand and maintain.
❓ framework
expert1:30remaining
In JUnit 5, which annotation best supports the Arrange-Act-Assert pattern for repeated setup before each test?
You want to run setup code before each test method to prepare test data (Arrange step). Which annotation should you use?
Attempts:
2 left
💡 Hint
Consider which annotation runs before every test method individually.
✗ Incorrect
@BeforeEach runs the annotated method before each test, ideal for arranging test data freshly.