Should a PHPUnit mock act like original object? How PHPUnit says "Your code suck"

Code
<?php

use PHPUnit\Framework\TestCase;

class Foo
{
    public static function one() : int
    {
        return 1;
    }
}

class Static3Test extends TestCase
{
    public function testOne() : void
    {
        $foo = new Foo();
        // PHP allows to call static methods like this
        $this->assertSame(1, $foo->one());
    }
    
    public function testOneMock() : void
    {
        $foo = $this->createMock('Foo');
        $foo->expects($this->once())
            ->method('one')
            ->will($this->returnValue(1));
        
        // the same as before with a mock
        // phpunit's way to say "your code suck"
        $this->assertSame(1, $foo->one());
    }
}
Result
Time: 00:00.007, Memory: 18.00 MB

There was 1 error:

1) Static3Test::testOneMock
Static method "one" cannot be invoked on mock object

PhpunitExec.php:21

ERRORS!
Tests: 2, Assertions: 0, Errors: 1.
Used Versions
PHP 8.3, Laminas MVC 3.2, Symfony 5.2, Laravel 8.28, PHPUnit 9.5, Doctrine ORM 2.8