Я использую фиктивный PHPUnit для создания фиктивного теста для моего кода.
Но когда я создаю фиктивный метод (A), который вызывается другим методом (B) в классе, метод B не возвращает то, что я хочу - он всегда возвращает ноль.
Мой класс:
public function isRecommended()
{
return $this->getAverageScore() >= 3;
}
public function getAverageScore()
{
// do something
}
Мой тест:
public function testIsRecommended_With5_ReturnsTrue()
{
$game = $this->createMock(Game::class);
$game->method('getAverageScore')->willReturn(5); //mocking return 5
$this->assertTrue($game->isRecommended());
}
Ошибка:
1) Src\Tests\Unit\GameTest::testIsRecommended_With5_ReturnsTrue
Failed asserting that null is true.
composer.json
{
"require": {
"phpunit/phpunit": "^7.1",
"phpunit/phpunit-mock-objects": "^6.1"
},
"autoload": {
"psr-4": {
"Src\\": "src/",
"Tests\\": "tests/"
}
}
}