PHP Infection помечает ложные непокрытые мутанты

У меня есть простой класс Count:

      class BsCount
{
    public function __construct(
        private int $count = 0
    ) {
    }

    public function increment()
    {
        return new self($this->count + 1);
    }

    public function value()
    {
        return $this->count;
    }
}

И тест PHPUnit для него:

          public function testCountsCorrectlyIfInitialIsNotPresent(): void
    {
        $this->assertEquals(
            3,
            (new BsCount())
                ->increment()
                ->increment()
                ->increment()
                ->value()
        );
    }

Если я вручную изменю значение по умолчанию $countзначение -1 или 1, тест не пройден. Однако, когда Infection изменяет значение по умолчанию на -1 или 1, все тесты проходят успешно, и мутант помечается как непокрытый в отчете(U).

В чем причина этого? Версии: PHP 8.02, PHPUnit 9.5.16, Infection 0.23.0.

0 ответов

Другие вопросы по тегам