Test data generation with builder DSL, traits, and faker utilities
implementation com.philiprehberger:test-factoryTest data generation with builder DSL, traits, and faker utilities.
implementation("com.philiprehberger:test-factory:0.2.0")
<dependency>
<groupId>com.philiprehberger</groupId>
<artifactId>test-factory</artifactId>
<version>0.2.0</version>
</dependency>
import com.philiprehberger.testfactory.*
data class User(val id: String, val name: String, val role: String = "user")
val userFactory = factory<User> {
default { User(id = Faker.uuid(), name = Faker.name()) }
trait("admin") { it.copy(role = "admin") }
}
val user = userFactory.build()
val admin = userFactory.build("admin")
val users = userFactory.buildList(10)
| Function / Class | Description |
|---|---|
factory<T> { } | Build a test data factory |
Factory.build() | Build a default instance |
Factory.build(override) | Build with overrides |
Factory.build(vararg traits) | Build with named traits |
Factory.buildList(count) | Build a list of instances |
sequence { } | Auto-incrementing value generator |
Faker.name() / email() / uuid() | Random test data |
Faker.int(range) / pick(vararg) / boolean() | Random values |
Faker.timestamp(from, to) | Random Instant in range |
Faker.date(from, to) | Random LocalDate in range |
./gradlew test
./gradlew build
If you find this project useful: