Скорее всего вам это не нужно, так как
приватные методы не нужно мокать, в общем случае. Мокают методы ВНЕШНИХ зависимостей
Но если прямо нужно, то текущий объект (метод которого тестите) тоже создаете через мок-билдер. То есть тестируемый класс становится моком. И делаете тестируемый метод исключением, то есть его мокать у мока не нужно и он будет отрабатывать как есть...
Пример (не забываем про методологию AAA):
// Arrange
$provider = $this
->getMockBuilder(UserProvider::class)
->setMethodsExcept(['delete']) // перечисленные тут методы будут настоящими, хоть и мок
->setConstructorArgs([]) // сюда зависимости конструктора передать
->getMock();
$provider = $provider
->expects($this->once())
->method('canDelete') // мокаем приватный метод
->willReturn(true);
// Action
$result = $provider->delete();
// Assert
$this->assertEquals(true, $result);