Releases: naver/fixture-monkey
Releases · naver/fixture-monkey
1.1.17
🐒 New Features
- Add
JavaNodeTreeAdapterPlugin— an alternative object generation engine using JvmNodeTree by @seongahjo in #1264 - Add
KotlinNodeTreeAdapterPlugin— Kotlin support for the node tree adapter by @seongahjo in #1264 - Add
AdapterTracer— built-in tracing for debugging value resolution during fixture generation by @seongahjo in #1264 - Add
object-farm-apimodule — JvmNodeTree, PathExpression, and type system infrastructure by @seongahjo in #1264
🌳 Node Tree Adapter Plugin
A new plugin that provides an alternative object generation path with zero overhead and built-in debugging capabilities. Starting from v1.2.0, the Node Tree Adapter will become the default object generation engine.
Java:
FixtureMonkey fixtureMonkey = FixtureMonkey.builder()
.plugin(new JavaNodeTreeAdapterPlugin())
.build();Kotlin:
val fixtureMonkey = FixtureMonkey.builder()
.plugin(KotlinPlugin())
.plugin(KotlinNodeTreeAdapterPlugin())
.build()Benchmark Results (JMH, fork=1, warmup=3, iterations=10)
| Scenario | Without Adapter | With Adapter | Overhead |
|---|---|---|---|
| Pure sample | 125.2 ms | 121.4 ms | -3.1% |
| set | 121.7 ms | 120.7 ms | -0.8% |
| size + setNull | 122.6 ms | 123.4 ms | +0.6% |
| Nested set | 124.1 ms | 124.8 ms | +0.5% |
| thenApply | 333.3 ms | 301.1 ms | -9.7% |
All scenarios show near-zero overhead.
thenApplyis consistently ~10% faster with the adapter.
Debugging with AdapterTracer
FixtureMonkey fixtureMonkey = FixtureMonkey.builder()
.plugin(new JavaNodeTreeAdapterPlugin()
.tracer(AdapterTracer.console()))
.build();Full Changelog: 1.1.16...1.1.17
1.1.16
🐒 New Features
- Add jackson3 support module by @hungrytech in #1267
- Add
FloatCombinableArbitrary,DoubleCombinableArbitrary,BigIntegerCombinableArbitrary,BigDecimalCombinableArbitraryby @kail-is in #1261 - Add
CharacterCombinableArbitraryby @kail-is in #1239 - Add
ShortCombinableArbitraryby @kail-is in #1240 - Add
LongCombinableArbitraryby @kail-is in #1238 - Add
MatcherOperatorRegistryandMatcherOperatorRetrieverby @rlaxowns7916 #1237 - Add JSpecify annotations in default annotation list by @jbl428 in #1235
🐞 Bug Fixes
New Contributors
- @ytjdud made their first contribution in #1252
- @juyeong made their first contribution in #1263
- @hungrytech made their first contribution in #1267
Full Changelog: 1.1.15...1.1.16
1.1.15
🐒 New Features
- Add
ByteCombinableArbitraryfollowingStringCombinableArbitrarypattern by @kail-is in #1212 - Add DataFaker arbitrary generators and plugin by @hocaron in #1214
- Add file based seed initialization by @210-reverof in #1213
🐞 Bug Fixes
- Fix recursive invocation of Kotlin customizeProperty function by @seokchan-H in #1210
- Fix Typo in JakartaArbitraryValidator ValidationFailedException message by @Chanwon-Seo in #1217
- Fix link in creating-objects.md by @AsCE-hyunseung in #1222
- Fix copy ArbitraryBuilderContext with optionValidOnly and customizedValueOnly by @rlaxowns7916 in #1224
- Fix validate container expression for size in strict mode by @Chanwon-Seo in #1223
New Contributors
- @seokchan-H made their first contribution in #1210
- @kail-is made their first contribution in #1212
- @Chanwon-Seo made their first contribution in #1217
- @AsCE-hyunseung made their first contribution in #1222
- @hocaron made their first contribution in #1214
- @rlaxowns7916 made their first contribution in #1224
- @210-reverof made their first contribution in #1213
Full Changelog: 1.1.14...1.1.15
1.1.14
🐒 New Features
- Add a new 'register' option with the priority by @YongGoose in #1166
🐞 Bug Fixes
- Fix the property instantiation within the register option by @seongahjo in #1204
New Contributors
- @YongGoose made their first contribution in #1166
Full Changelog: 1.1.13...1.1.14
1.1.13
🐞 Bug Fixes
- Fix the issue where the instantiate API is not working within the register by @seongahjo in #1203
- Fix BeanArbitraryIntrospector throw NPE when retrieving setter by @bbeomgeun #1201
New Contributors
- @bbeomgeun made their first contribution in #1201
Full Changelog: 1.1.12...1.1.13
1.1.12
🐒 New Features
- Add compatibility with TypedPropertySelector and path expression DSL by @seongahjo in #1184
- Add StringCombinableArbitrary, IntegerCombinableArbitrary for easy customization by @Denia-park in #1192
- 📝 docs
- Add Cursor Rule for Fixture Monkey Test Writing Guidelines by @tigermint in #1195
- Implement InnerSpec Kotlin DSL to resolve parameter shadowing by @kssumin in #1196
🐞 Bug Fixes
- Fix size API within register that applies to root type by @seongahjo in #1189
- Fix bugs in SimpleValueJqwikPlugin if minSize is greater than default max size by @seongahjo in #1197
New Contributors
- @tigermint made their first contribution in #1195
- @kssumin made their first contribution in #1196
Full Changelog: 1.1.11...1.1.12
1.1.11
🐒 New Features
- Add generating Kotlin sealed object type by @seongahjo in #1163
Full Changelog: 1.1.10...1.1.11
1.1.10
🐒 New Features
- Add support for deterministic testing with JUnit, the tests annotated by
@Seedwould be deterministic. @seongahjo in #1146 - Add support generating Kotlin constant object. @seongahjo in #1159
🐞 Bug Fixes
- Fix the functional interface instance supports
equals,hashCode,toString. @seongahjo in #1151 - Fix instantiate API with Kotlin value class.
- @seongahjo in #1160
- @seongahjo in #1162
🔌 Refactoring
- Refactor simplifying numeric validation.
- Refactor addressing Java expGetter record. @rawfishthelgh in #1096
- Refactor resolving expressions as programmatic primarily.
- @seongahjo in #1154
- @seongahjo in #1155
New Contributors
- @rawfishthelgh made their first contribution in #1096
Full Changelog: 1.1.9...1.1.10
1.1.9
🐞 Bug Fixes
- Fix
abstractExtendsin InterfacePlugin does not support interface, please useinterafaceImplementsinstead. - Fix a record instance generates canonical constructor properties.
- Fix modifying the number option in
SimpleValueJqwikPlugin.
⚠️ Deprecated
- Deprecate
InterfaceCandidateConcretePropertyResolver, please useConcreteTypeCandidateConcretePropertyResolverinstead.
1.1.8
🐞 Bug Fixes
- Fix InnerSpec
innerAPI by @seongahjo in #1137 - Fix not applying registered child manipulations if parent uses
thenApplyby @seongahjo in #1136
Full Changelog: 1.1.7...1.1.8