PHPverse 2025

uopz_set_mock

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_set_mockUsa mock em vez de classe para novos objetos

Descrição

uopz_set_mock(string $class, mixed $mock): void

Se mock for uma string contendo o nome de uma classe, ela será instanciada em vez de class. mock também pode ser um objeto.

Nota:

Somente o acesso dinâmico a propriedades e métodos utilizará o objeto mock. O acesso estático ainda utiliza a classe original do parâmetro class. Veja o exemplo abaixo.

Parâmetros

class

O nome da classe a ter o mock usado.

mock

O mock a ser usado é uma string contendo o nome da classe a ser usada ou de um objeto. Se uma string for passada, ela deve ser o nome completo da classe. É recomendado usar a constante mágica ::class neste caso.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão Descrição
PECL uopz 6.0.0 Esta função não suporta mais o mock de membros estáticos. uopz_redefine() e uopz_set_return(), ou Componere podem ser usados ​​em seu lugar.

Exemplos

Exemplo #1 Exemplo de uopz_set_mock()

<?php
class A {
public function
who() {
echo
"A";
}
}

class
mockA {
public function
who() {
echo
"mockA";
}
}

uopz_set_mock(A::class, mockA::class);
(new
A)->who();
?>

O exemplo acima produzirá:

mockA

Exemplo #2 Exemplo de uopz_set_mock()

<?php
class A {
public function
who() {
echo
"A";
}
}

uopz_set_mock(A::class, new class {
public function
who() {
echo
"mockA";
}
});
(new
A)->who();
?>

O exemplo acima produzirá:

mockA

Exemplo #3 uopz_set_mock() e membros estáticos

A partir do uopz 6.0.0, o mock de membros estáticos não é mais suportada.

<?php
class A {
const
CON = 'A';
public static function
who() {
echo
"A";
}
}

uopz_set_mock(A::class, new class {
const
CON = 'mockA';
public static function
who() {
echo
"mockA";
}
});
echo
A::CON, PHP_EOL;
A::who();
?>

O exemplo acima produzirá:

A
A

Saída do exemplo acima no uopz 5:

mockA
mockA

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top