Чтобы создать свой собственный метод `assert` в PHPUnit, который будет действиями ваше тестирование и специально выделять место вызова, вы можете наследоваться от класса `Assert` в PHPUnit и переопределить нужные методы. Однако проще всего будет создать собственный метод в вашем тестовом классе и использовать встроенные возможности `PHPUnit`.
Вот пример создания собственного `assert`, который вызывает стандартный `assert`, но с дополнительной информации о местоположении вызова:
```php
use PHPUnit\Framework\Assert;
class MyTestCase extends PHPUnit\Framework\TestCase
{
protected function assertCustom($condition, $message = '')
{
if (!$condition) {
$trace = debug_backtrace();
$caller = $trace[1]; // это вызов метода assertCustom
$file = $caller['file'];
$line = $caller['line'];
throw new \PHPUnit\Framework\ExpectationFailedException(
"Assertion failed at $file:$line\n" . $message
);
}
}
}
```
В данном коде:
1. Вы создаете метод `assertCustom`, который принимает условие и сообщение.
2. Используется `debug_backtrace`, чтобы получить информацию о месте вызова.
3. Если условие оказывается ложным, бросается исключение `ExpectationFailedException` с указанием файла и строки, где был вызван ваш `assertCustom`.
Теперь вы можете использовать `assertCustom` в ваших тестах:
```php
class MyTests extends MyTestCase
{
public function testExample()
{
$value = 1;
$this->assertCustom($value === 2, 'Value should be 2');
}
}
```
При выполнении этого теста, если условие не выполняется, будет отображено сообщение об ошибке с указанием местоположения вызова `assertCustom`, что поможет вам быстро находить ошибки.