Skip to content

Releases: naver/fixture-monkey

1.1.17

05 Mar 09:29

Choose a tag to compare

🐒 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-api module — 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. thenApply is consistently ~10% faster with the adapter.

Debugging with AdapterTracer

FixtureMonkey fixtureMonkey = FixtureMonkey.builder()
    .plugin(new JavaNodeTreeAdapterPlugin()
        .tracer(AdapterTracer.console()))
    .build();

⚠️ The seed feature is not yet fully supported. Reproducibility is not guaranteed in all scenarios.

Full Changelog: 1.1.16...1.1.17

1.1.16

27 Feb 14:10

Choose a tag to compare

🐒 New Features

  • Add jackson3 support module by @hungrytech in #1267
  • Add FloatCombinableArbitrary, DoubleCombinableArbitrary, BigIntegerCombinableArbitrary, BigDecimalCombinableArbitrary by @kail-is in #1261
  • Add CharacterCombinableArbitrary by @kail-is in #1239
  • Add ShortCombinableArbitrary by @kail-is in #1240
  • Add LongCombinableArbitrary by @kail-is in #1238
  • Add MatcherOperatorRegistry and MatcherOperatorRetriever by @rlaxowns7916 #1237
  • Add JSpecify annotations in default annotation list by @jbl428 in #1235

🐞 Bug Fixes

  • Fix value class property access when value is null by @juyeong Lee in #1263

New Contributors

Full Changelog: 1.1.15...1.1.16

1.1.15

03 Sep 07:40

Choose a tag to compare

🐒 New Features

  • Add ByteCombinableArbitrary following StringCombinableArbitrary pattern 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

New Contributors

Full Changelog: 1.1.14...1.1.15

1.1.14

26 Jun 10:15

Choose a tag to compare

🐒 New Features

🐞 Bug Fixes

  • Fix the property instantiation within the register option by @seongahjo in #1204

New Contributors

Full Changelog: 1.1.13...1.1.14

1.1.13

25 Jun 09:09

Choose a tag to compare

🐞 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

Full Changelog: 1.1.12...1.1.13

1.1.12

18 Jun 10:47

Choose a tag to compare

🐒 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
  • 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

Full Changelog: 1.1.11...1.1.12

1.1.11

26 Mar 11:47

Choose a tag to compare

🐒 New Features

Full Changelog: 1.1.10...1.1.11

1.1.10

07 Mar 03:52

Choose a tag to compare

🐒 New Features

  • Add support for deterministic testing with JUnit, the tests annotated by @Seed would be deterministic. @seongahjo in #1146
  • Add support generating Kotlin constant object. @seongahjo in #1159

🐞 Bug Fixes

🔌 Refactoring

New Contributors

Full Changelog: 1.1.9...1.1.10

1.1.9

08 Feb 04:27

Choose a tag to compare

🐞 Bug Fixes

  • Fix abstractExtends in InterfacePlugin does not support interface, please use interafaceImplements instead.
  • Fix a record instance generates canonical constructor properties.
  • Fix modifying the number option in SimpleValueJqwikPlugin.

⚠️ Deprecated

  • Deprecate InterfaceCandidateConcretePropertyResolver, please use ConcreteTypeCandidateConcretePropertyResolver instead.

1.1.8

31 Dec 12:00

Choose a tag to compare

🐞 Bug Fixes

Full Changelog: 1.1.7...1.1.8