TDD — Test-Driven Development for BitcoinAddressFinder
You are working on BitcoinAddressFinder (group net.ladenthin, Java 21, Maven).
Generic Java TDD Guide
Follow all conventions from the generic Java TDD skill (.claude/skills/java-tdd-guide/SKILL.md). That guide covers:
- Red → Green → Refactor workflow
- File headers (Apache 2.0 license)
- Test framework stack (JUnit 4, DataProviderRunner, Hamcrest, Mockito)
- Test naming, AAA structure, editor folds
- Assertions (Hamcrest only), exception testing
- Data providers, named constants, DRY
- Logger injection (constructor over setter)
- Null safety (JSpecify + NullAway)
- Records, immutability, concurrency
- Import style, anti-patterns, completeness checklist
Project-Specific Supplements
For BitcoinAddressFinder-specific conventions, also follow:
CODE_WRITING_GUIDE.md — BitHelper radix constants, C-prefix configuration POJOs, custom domain exceptions, graceful shutdown (Interruptable), lambda callbacks
TEST_WRITING_GUIDE.md — Marker annotations (@AwaitTimeTest, @ToStringTest, @OpenCLTest), timing/await tests, static address constants (StaticKey, P2PKH, P2SH, P2WPKH), platform assumptions, LMDB/OpenCL test patterns, producer test helpers, socket test utilities
Package
net.ladenthin.bitcoinaddressfinder
Build & Test
./mvnw compile # compile (NullAway enforced)
./mvnw test # run all tests
./mvnw test -Dnet.ladenthin.bitcoinaddressfinder.disableLMDBTest=true # skip LMDB tests
Source: bernardladenthin/BitcoinAddressFinder — distributed by TomeVault.
1---2name: tdd-383description: Test-Driven Development workflow for BitcoinAddressFinder — delegates to the generic Java TDD skill and adds project-specific context Use when this capability is needed.4---56# TDD — Test-Driven Development for BitcoinAddressFinder78You are working on **BitcoinAddressFinder** (group `net.ladenthin`, Java 21, Maven).910## Generic Java TDD Guide1112Follow all conventions from the generic Java TDD skill (`.claude/skills/java-tdd-guide/SKILL.md`). That guide covers:1314- Red → Green → Refactor workflow15- File headers (Apache 2.0 license)16- Test framework stack (JUnit 4, DataProviderRunner, Hamcrest, Mockito)17- Test naming, AAA structure, editor folds18- Assertions (Hamcrest only), exception testing19- Data providers, named constants, DRY20- Logger injection (constructor over setter)21- Null safety (JSpecify + NullAway)22- Records, immutability, concurrency23- Import style, anti-patterns, completeness checklist2425## Project-Specific Supplements2627For BitcoinAddressFinder-specific conventions, also follow:2829- **`CODE_WRITING_GUIDE.md`** — BitHelper radix constants, C-prefix configuration POJOs, custom domain exceptions, graceful shutdown (Interruptable), lambda callbacks30- **`TEST_WRITING_GUIDE.md`** — Marker annotations (@AwaitTimeTest, @ToStringTest, @OpenCLTest), timing/await tests, static address constants (StaticKey, P2PKH, P2SH, P2WPKH), platform assumptions, LMDB/OpenCL test patterns, producer test helpers, socket test utilities3132## Package3334```35net.ladenthin.bitcoinaddressfinder36```3738## Build & Test3940```bash41./mvnw compile # compile (NullAway enforced)42./mvnw test # run all tests43./mvnw test -Dnet.ladenthin.bitcoinaddressfinder.disableLMDBTest=true # skip LMDB tests44```4546---47> Source: [bernardladenthin/BitcoinAddressFinder](https://github.com/bernardladenthin/BitcoinAddressFinder) — distributed by [TomeVault](https://tomevault.io).48<!-- tomevault:4.0:skill_md:2026-06-29 -->