LEARNING SQL / NOTES</>↗Learning SQL18 Jul 2026
What is SQL? SQL (Structured Query Language, pronounced “sequel” or “S-Q-L”) is a domain-specific programming language designed for managing and manipulating data stored in relational databases. Think of it as the standard “language” you use to talk to a database — to ask it questions, store information, update records, or delete data. The Core Idea […]
JUNIT / NOTES</>↗JUnit17 Jul 2026
Test templates in JUnit 5 provide a powerful way to run the same test multiple times with different contexts or invocation strategies. Unlike @ParameterizedTest (which is a specialized form of test template), @TestTemplate gives you full control over how tests are invoked by requiring you to register a custom TestTemplateInvocationContextProvider. When to Use @TestTemplate Use […]
JUNIT / NOTES</>↗JUnit17 Jul 2026
@TestFactory is a JUnit Jupiter feature that lets you generate tests at runtime rather than declaring them statically with @Test. This is useful when the number or nature of tests depends on data that’s only known at execution time. Key Rules A @TestFactory method must return one of: DynamicNode (or a subtype like DynamicTest / […]
JUNIT / NOTES</>↗JUnit17 Jul 2026
JUnit 5 provides several ways to conditionally execute tests based on various runtime conditions. This is useful when tests should only run under specific circumstances — like a particular operating system, JRE version, environment variable, or system property. 1. Operating System Conditions Use @EnabledOnOs and @DisabledOnOs to run tests only on specific operating systems. import […]
JUNIT / NOTES</>↗JUnit17 Jul 2026
JUnit 5 provides a powerful extension model that lets you hook into the test lifecycle. Here’s a comprehensive guide to creating custom extensions. 1. Choose the Right Extension Interface JUnit 5 offers several extension interfaces depending on what you want to do: Interface Purpose BeforeAllCallback / AfterAllCallback Run code before/after all tests in a class […]
JUNIT / NOTES</>↗JUnit17 Jul 2026
JUnit Jupiter (JUnit 5) provides a powerful extension model that lets you plug custom behavior into the test lifecycle. Instead of the old JUnit 4 approach of using @RunWith (which allowed only one runner) or @Rule, JUnit 5 uses @ExtendWith — and you can apply as many extensions as you want. Let’s break this down […]