Минимальный скелет двух модулей:
bitdive-testing-core
— fluent APIBitDiveTest
, стор трассы, каркасы реплеев (HTTP/DB), простые сравнения.bitdive-testing-spring-boot-starter
— авто‑конфиг для профиляbitdive-test
, регистрирует @Primary реплееры.
BitDiveTest.run()
.springBootApp(App.class)
.traceId("51df62ed-7544-11f0-8895-81497df45889")
.classForTest(Controller.class)
.methodForTest("updateStudent", StudentRecord.class, Integer.class)
.typeComparison(BitDiveTest.ComparisonMode.ALL)
.replayHttp(true).replayDb(true)
.execute().assertOk();
По умолчанию trace грузится с classpath: /bitdive/traces/<traceId>.json
и вытаскивает поля args
и methodReturn
.
Важно: в этом скелете DataSource
и HTTP‑реплей — заготовки. Они компилируются, но SQL‑реплей требует реализации Connection/Statement/ResultSet
, а HTTP‑поиск записей нужно связать с вашим форматом restCalls
.
mvn -q -DskipTests clean install
- HTTP:
io.bitdive.testing.core.http.BitDiveRestReplayInterceptor
+ маппингstore.findHttp(...)
- DB:
io.bitdive.testing.core.db.BitDiveReplayDataSource
(реализовать replay соединение/стейтменты) - Store/loader: распарсить
sqlCalls
,restCalls
,queueCalls
и выдавать их по ключам/порядку. - Сравнение:
Comparator
(сейчас простое сравнение через Jackson),SequenceVerifier
для порядков.