Verifyica provides a powerful framework for parameterized testing that goes beyond traditional approaches. Write tests once, run them across multiple arguments with complete lifecycle control, advanced parallelism, and sophisticated dependency management.
Argument-Driven Testing
Write tests that execute across multiple arguments with type-safe Argument<T> support and flexible suppliers.
Advanced Lifecycle
Complete lifecycle management with Prepare, BeforeAll, BeforeEach, Test, AfterEach, AfterAll, and Conclude phases for each argument.
Parallel Execution
Fine-grained parallelism control at class, argument, and test levels with configurable thread pools.
Test Dependencies
Define explicit test dependencies and execution order with @DependsOn and @Order annotations.
Interceptors
Hook into test lifecycle with ClassInterceptor and EngineInterceptor for cross-cutting concerns.
Production Ready
Used in production with comprehensive test coverage, minimal dependencies, and Java 8+ compatibility.
Quick Example
public class ParallelArgumentTest {
@Verifyica.ArgumentSupplier(parallelism = 2)
public static Object arguments() {
Collection<String> collection = new ArrayList<>();
for (int i = 0; i < 10; i++) {
collection.add("string-" + i);
}
return collection;
}
@Verifyica.BeforeAll
public void beforeAll(String argument) {
// Setup for this argument
}
@Verifyica.Test
public void test1(String argument) {
// Test with this argument
}
@Verifyica.AfterAll
public void afterAll(String argument) {
// Cleanup for this argument
}
}
Each test method runs 10 times (once per argument) with 2 arguments executing in parallel.