uopz_set_mock
(PECL uopz 5, PECL uopz 6, PECL uopz 7)
uopz_set_mock — Use mock instead of class for new objects
Beschreibung
If mock is a string containing the name of a class then it will be instantiated instead of
class. mock can also be an object.
Hinweis:
Only dynamic access to properties and methods will use the
mockobject. Static access still uses the originalclass. See example below.
Parameter-Liste
-
class -
The name of the class to be mocked.
-
mock -
The mock to use in the form of a string containing the name of the class to use or an object. If a string is passed, it has to be the fully qualified class name. It is recommended to use the
::classmagic constant in this case.
Rückgabewerte
Es wird kein Wert zurückgegeben.
Changelog
| Version | Beschreibung |
|---|---|
| uopz 6.0.0 | Mocking static members is no longer supported by this function. uopz_redefine() and uopz_set_return(), or Componere can be used instead. |
Beispiele
Beispiel #1 uopz_set_mock() example
<?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();
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
mockA
Beispiel #2 uopz_set_mock() example
<?php
class A {
public function who() {
echo "A";
}
}
uopz_set_mock(A::class, new class {
public function who() {
echo "mockA";
}
});
(new A)->who();
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
mockA
Beispiel #3 uopz_set_mock() and static members
As of uopz 6.0.0 mocking static members is no longer supported.
<?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();
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
A A
Output of the above example in uopz 5:
mockA mockA
Siehe auch
- uopz_get_mock() - Get the current mock for a class
- uopz_unset_mock() - Unset previously set mock

