Skip to content

Latest commit

 

History

History
52 lines (35 loc) · 2.44 KB

TODO.md

File metadata and controls

52 lines (35 loc) · 2.44 KB

1.9.2

- Bug with provider method type matching in interface default methods.
  See https://github.com/jqwik-team/jqwik/issues/599.

1.9.x

- Summon preconfigured arbitrary. See https://github.com/jqwik-team/jqwik/issues/527

- Using @UseType for sealed interfaces and classes: https://github.com/jqwik-team/jqwik/issues/523
  Will probably require a new module for java 17

- Allow parallel test runs with SBT: https://github.com/jqwik-team/jqwik/issues/514

- Method ordering. See https://github.com/jqwik-team/jqwik/issues/502.

- Migrate to https://docs.gradle.org/8.10/userguide/jvm_test_suite_plugin.html
  as preparation for Gradle 9. It's still incubating, but we should be prepared.

- State-based Properties (https://github.com/jqwik-team/jqwik/issues/428) : 
  - Do not shrink a single transformation if it is accessing state and any following transformation changes state.
  - ChainArbitrary.startWith(.., ChainConfig.of(isImmutable, hasSideEffects, comparator))

- PropertyInfo: Provide PropertyInfo hook with info about the porperty's display name, class, method, tags etc.
  See Jupiter's TestInfo as an example.

- Introduce ModelChain or other mechanism to simplify model-based comparison properties. 
  - Should cover https://github.com/jqwik-team/jqwik/issues/80.
  - Maybe ModelChain can be fully generated before it's provided as parameter? This could enable repeatability of shrinked samples.
  - See example in https://github.com/jlink/model-based-testing/tree/jqwik170/src/test/java/mbt/tecoc/withModelChain

- Allow state machine / model specification with temporal logic.
  See https://wickstrom.tech/programming/2021/05/03/specifying-state-machines-with-temporal-logic.html

- NullableArbitraryProvider should always be last to apply.
  This will probably require a new parameter based lifecycle hook, similar to:

  ```
  interface WrapArbitrary extends Lifecycle Hook {
    <T> Arbitrary<T> wrap(ForAllParameterContext parameterContext, Arbitrary<T> arbitrary);
  }
  ```

- <T,S,U> SetArbitrary<E>.combineEach(Arbitrary<S>).as(BiFunction<T, E, U>): Arbitrary<Set<U>>
  - For all collection arbitraries

- SharedArbitrary
  See https://github.com/jqwik-team/jqwik/issues/294 & SharedArbitraryExperiments
  This probably requires major refactoring and change of structure.

    - Allow @ForAll on member variables of test container class