Blah-Blah is a Kotlin Multiplatform (KMP) library designed to generates fake data for robust testing and development. It can be used for things such as:
- Unit Testing
- Performance Testing
- Building Demos
- Working without a completed backend
Blah-Blah's flexibility and compatibility with Kotlin Multiplatform make it an essential tool for creating high-quality applications that are thoroughly tested and well-prepared for dynamic development demands.
- It generates realistic data, enabling effective scenario simulation without relying on actual data sources.
- The library provides a solid foundation for robust testing by offering diverse datasets that mimic real-world scenarios.
- Blah-Blah supports Kotlin Multiplatform.
flowchart LR
K[(Resource)] --> H[YAML Parser]
H --> N[YAML Provider] --> F[BlahBlah Provider]
F --> A[Module]
A[Module] --> B[(BlahBlah)]
- Address
- Ancient
- Animal
- App
- Artist
- Bank
- Book
- Cat
- Code
- Color
- Commerce
- Company
- CreditCard
- Compass
- Education
- Esports
- File
- Food
- Hacker
- IdNumber
- Internet
- Job
- Lorem
- Music
- Name
- Space
- Uuid
- University
- Team
Add the dependency below into your module's build.gradle.kts
file:
// For development
// It includes blah-blah fake.
implementation("io.github.behzodhalil:blahblah-fake:<latest-version>")
// If only need yaml parser
implementation("io.github.behzodhalil:blahblah-yaml:<latest-version>")
// For testing
// It includes blah-blah fake.
testImplementation("io.github.behzodhalil:blahblah-fake:<latest-version>")
// If only need yaml parser
testImplementation("io.github.behzodhalil:blahblah-yaml:<latest-version>")
class BlahBlahTest {
private lateinit var blah: BlahBlah
@BeforeTest
fun setup() {
blah = blah()
}
@Test
fun `check the blah blah works properly`() {
val city = blah.address.city
val state = blah.address.state
assertNotNull(city)
assertNotNull(state)
}
@Test
fun `check the street address gets successfully`() {
val streetAddress = blah.address.streetAddress
assertNotNull(streetAddress)
assertTrue(streetAddress.isDigit())
}
}
YamlParser for parsing YAML files and retrieving values organized in a specific structure.
interface YamlParser {
fun values(): YamlResource
}
YamlProvider for providing values fetched from YAML resources using specified keys.
interface YamlProvider {
fun get(key: String): String
}
Provider representing a provider that retrieves content from a specified path. It is a bridge between module and yaml provider.
public interface Provider {
public fun get(path: Path): String
}
Path representing a path to a resource.It is not Okio path.
public interface Path {
public val value: String
}