У меня есть следующий класс:
namespace Utils\Random;
class RandomHelper
{
const LUCKY_NUMBER=3;
public static function lucky()
{
return rand(0,6)==self::LUCKY_NUMBER;
}
}
И я хочу протестировать этот класс с помощью модульного теста:
namespace Tests\Random;
use PHPUnit\Framework\TestCase;
class RandomHelperTest extends TestCase
{
public function testLucky()
{
// Mock rand here
// Here I want the rand return a value that is not 3
}
public function testLuckyFails()
{
// Mock rand here
// Here I want the rand return a value that is not 3
}
}
Но чтобы мой тест был модульным, я хочу смоделировать функцию php standart rand
, чтобы иметь постоянный результат в моем тесте.
Как видите, у меня противоречивые потребности, поэтому решение , похоже, мне не подходит. В одном тесте я хочу проверить, когда один из методов lucky
равен true, а с другой стороны, я хочу иметь возможность, когда функция lucky вернет false.
Так у тебя есть какая-нибудь горячая идея сделать это?