Verify advanced data source processes complex data correctly
Preconditions (2)
✅ Expected Result: The processData method returns the correctly processed output for the complex data input
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; class AdvancedDataSourceTest { private AdvancedDataSource dataSource; private String complexDataInput; private String expectedOutput; @BeforeEach void setUp() { dataSource = new AdvancedDataSource(); // Example complex data as JSON string complexDataInput = "{\"user\":{\"id\":123,\"name\":\"Alice\"},\"items\":[1,2,3]}"; // Expected processed output (example) expectedOutput = "Processed: user Alice with 3 items"; } @Test void testProcessComplexData() { String result = dataSource.processData(complexDataInput); assertNotNull(result, "Result should not be null"); assertEquals(expectedOutput, result, "Processed output should match expected"); } } // Dummy AdvancedDataSource class for context class AdvancedDataSource { public String processData(String data) { // Simulate processing complex data if (data.contains("Alice") && data.contains("items")) { return "Processed: user Alice with 3 items"; } return ""; } }
This test class AdvancedDataSourceTest uses JUnit 5 to automate the manual test case.
We use @BeforeEach to set up the test data before each test runs. This keeps tests clean and repeatable.
The test method testProcessComplexData calls the processData method with a complex JSON string as input.
We assert that the result is not null and that it exactly matches the expected processed output string.
This ensures the advanced data source handles complex data correctly.
Now add data-driven testing with 3 different complex data inputs and expected outputs
Map data = Map.of(
"user", Map.of("name", "Alice", "age", 30),
"active", true
);
assertEquals("Alice", ((Map)data.get("user")).get("name"));Map data = new HashMap<>();
data.put("info", Map.of("id", 101, "status", "active"));
assertEquals(101, data.get("info").get("id"));Pass the test and this pattern moves unknown