You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test(integration): replace jqwik with seeded @ParameterizedTest + RandomArrays
jqwik team opposes AI-assisted development. Drop the dependency entirely.
- Add RandomArrays utility with seeded Random generators for long[], double[],
float[], String[] (ascii, varBinView, u16Dict, unicode)
- Convert 7 @Property tests to @ParameterizedTest + @MethodSource
- Remove jqwik from integration/pom.xml and root pom.xml (property + managed dep)
- Remove .jqwik-database from .gitignore
- Update CLAUDE.md and README.md to reflect the new approach
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CLAUDE.md
+13-6Lines changed: 13 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -163,7 +163,7 @@ The decoder reads back via `ctx.metadata()`, not `ctx.buffer(n)`.
163
163
`given` and `then` — not `willReturn`/`willThrow`.
164
164
- Prefer `@ParameterizedTest` over copy-pasting tests. Use `@ValueSource` when possible; `@ArgumentsSource` when more
165
165
structure needed (test case must have a name).
166
-
- Use property-based tests (`@Property`) for encoding/decoding logic where input space is large — they find corner cases that example tests miss.
166
+
- Use `@ParameterizedTest` with seeded random generators for encoding/decoding logic where input space is large — they find corner cases that example tests miss.
167
167
- Acceptance tests run the built jar end-to-end with hosh scripts.
168
168
- Use `@Nested` to group related tests by scenario or feature within a test class:
169
169
```java
@@ -175,10 +175,17 @@ The decoder reads back via `ctx.metadata()`, not `ctx.buffer(n)`.
175
175
`@BeforeEach` inside a `@Nested` class applies only to that group. Private helpers go
176
176
at the end of the class they serve, after all `@Test` methods.
177
177
178
-
## Property-Based Testing (jqwik)
178
+
## Random-data parameterized tests
179
179
180
-
jqwik 1.9.3 works with JUnit Jupiter 5.11.x (JUnit Platform 1.x). Use `@Property` + `@ForAll` for parameters,
181
-
`@Provide` for custom arbitraries, `Assume.that(...)` for preconditions.
180
+
Use `@ParameterizedTest` + `@MethodSource` for random-input coverage. Put generators in `RandomArrays` (integration module)
181
+
or a similar utility class. Static provider methods in the test class delegate to the generator:
182
182
183
-
Keep `tries` low (10–20) for integration tests that involve file I/O or JNI; unit-level properties can use the
0 commit comments