- Support for PHP
8.4
- Support for PHPUnit 11
- By default the printer groups the proofs output in a GitHub Action
Innmind\BlackBox\Runner\Printer\Standard::disableGitHubOutput()
$assert->array()->contains()
$assert->array()->not()->contains()
Innmind\BlackBox\PHPUnit\Framework\TestCase::assert()
Innmind\BlackBox\Set\Tuple
$assert->same()
message not being usedInnmind\BlackBox\Set\Sequence
shrinking process now correctly shrinks all values that do not affect the testInnmind\BlackBox\Set\Composite
shrinking process now correctly shrinks all values that do not affect the test
- The global function
property
return type is nowInnmind\BlackBox\Runner\Proof\Property
allowing you to name the property
- Thrown exceptions in properties weren't failing proofs
- When disabling memory limit it now longer tries to reset the memory limit to the previous value. (It seems PHP prevents setting the limit lower to the peak memory usage)
Innmind\BlackBox\Set\Call
regenarate the value each time a scenario is run
- Clear the memory before printing a failing scenarion to make sure no values bleed between scenarii.
- Support for
symfony/var-dumper:~7.0
- Stats are correctly displayed in GitHub Actions even in case of a failure
- Assertion failures in properties were displayed as unexpected exceptions
- Uncaught exceptions in properties no longer crash the process
Innmind\BlackBox\PHPUnit\Framework\TestCase::expectException()
Innmind\BlackBox\PHPUnit\Framework\TestCase::expectExceptionCode()
Innmind\BlackBox\PHPUnit\Framework\TestCase::expectExceptionMessage()
Innmind\BlackBox\Set\MutuallyExclusive
wasn't excluding strings in a different case
- Custom tags loaded from PHPUnit groups were discarded
Innmind\BlackBox\PHPUnit\Load::parseTagWith()
Innmind\BlackBox\Application::stopOnFailure()
Innmind\BlackBox\Application::map()
Innmind\BlackBox\Application::when()
- For iTerm users a mark is now placed on failures allowing you to directly jump between errors
Innmind\BlackBox\PHPUnit\Framework\TestCase
Innmind\BlackBox\PHPUnit\Load
Innmind\BlackBox\Application::disableMemoryLimit()
Innmind\BlackBox\Runner\Assert::matches()
Innmind\BlackBox\Runner\Assert::time()
Innmind\BlackBox\Runner\Assert::memory()
Innmind\BlackBox\Set\Slice
Innmind\BlackBox\Set\MutuallyExclusive
Innmind\BlackBox\Tag::ci
Innmind\BlackBox\Tag::local
- The message
Failing scenarii:
was always printed in PHPUnit output even when there was no failures
Innmind\BlackBox\PHPUnit\Compatibility::asDataProvider()
Innmind\BlackBox\Application::disableGlobalFunctions()
Innmind\BlackBox\Runner\proof
functionInnmind\BlackBox\Runner\test
functionInnmind\BlackBox\Runner\given
functionInnmind\BlackBox\Runner\property
functionInnmind\BlackBox\Runner\properties
function- PHPUnit extension now prints the generated data that resulted in an error
Innmind\BlackBox\PHPUnit\BlackBox::forAll()
is now astatic
method
- Increased the randomness between scenarii to avoid collisions when validating a model with state.
Innmind\BlackBox\Set\Call
now regenerate the value when shrinking
Innmind\BlackBox\Set\Call
Innmind\BlackBox\Set\Nullable
Innmind\BlackBox\Set::map()
Innmind\BlackBox\PHPUnit\Extension
Innmind\BlackBox\Application
Innmind\BlackBox\Tag
Innmind\BlackBox\Runner\Load
Innmind\BlackBox\Runner\CodeCoverage
Innmind\BlackBox\Runner\Assert
Innmind\BlackBox\Runner\Printer
Innmind\BlackBox\Runner\IO
Innmind\BlackBox\Property::any()
- All
Set
s constructor are now private - PHP
8.2
is now required Innmind\BlackBox\Set\AnyType
has been renamed toInnmind\BlackBox\Set\Type
Innmind\BlackBox\Random
is now an enum- Requires
PHPUnit
10
Innmind\BlackBox\Properties
constructor is now private, use::of()
named constructor insteadInnmind\BlackBox\Properties::ensureHeldBy
now expectsInnmind\BlackBox\Runner\Assert
as a first argumentInnmind\BlackBox\Properties
is now longer compatible with third party test runnersInnmind\BlackBox\Property::ensureHeldBy
now expectsInnmind\BlackBox\Runner\Assert
as a first argumentInnmind\BlackBox\Property
is now longer compatible with third party test runnersInnmind\BlackBox\Set::take()
and::filter()
now explicitly state that they are mutation freeInnmind\BlackBox\Set::take()
now requires apositive-int
as argumentInnmind\BlackBox\Set\Chars
now longer implements theSet
interface, useChars::any()
insteadInnmind\BlackBox\Set\IntegersExceptZero
now longer implements theSet
interface, useIntegersExceptZero::any()
insteadInnmind\BlackBox\Set\NaturalNumbers
now longer implements theSet
interface, useNaturalNumbers::any()
insteadInnmind\BlackBox\Set\NaturalNumbersExceptZero
now longer implements theSet
interface, useNaturalNumbersExceptZero::any()
insteadInnmind\BlackBox\Set\Sequence::of()
now longer accept the range of values as 2nd argument, useSequence::of()->atLeast()
,Sequence::of()->atMost()
andSequence::of()->between()
insteadInnmind\BlackBox\Set\Strings
now longer implements theSet
interface, useStrings::any()
insteadInnmind\BlackBox\Set\Strings::any()
now longer accept the maximum length, useStrings::atMost()
instead
- Avoid trying to generate from a
Set
inSet\Either
that can't generate data
seeder
method provided byInnmind\BlackBox\PHPUnit\Blackbox
trait- Support for PHPUnit
8
and9
(custom printers are now longer available) - Support for Symfony
4
and5
Innmind\BlackBox\Set\Regex
Innmind\BlackBox\Set\Strings::matching()
Innmind\BlackBox\Random\RandomInt
Innmind\BlackBox\Random\MtRand
Innmind\BlackBox\Property::name()
Innmind\BlackBox\PHPUnit\BlackBox::seeder()
Innmind\BlackBox\PHPUnit\Seeder
Innmind\BlackBox\Set\Properties::chooseFrom()
, useProperties::any()->between()
orProperties::any()->atMost()
insteadInnmind\BlackBox\Set\Property
Innmind\BlackBox\Set\Unicode::lengthBetween()
, useUnicode::any()->between()
instead