Невозможно имитировать частичный бревенчатый фасад в LaravelPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно имитировать частичный бревенчатый фасад в Laravel

Сообщение Anonymous »

Я пытаюсь высмеять журнал laravel. Это мой код:
public function test_process_verify_card()
{
Log::shouldReceive('error')->once();
Log::makePartial();
$class = new MyClass();
$class->myFunction();
}

Это MyClass выглядит так:
class MyClass
{
public function __construct()
{
$this->logger = Logg::channel('test');
}

public function myFunction()
{
// ... some logic
$this->loggger->error('Errror!!');
}
}

Когда я запускаю этот тестовый пример, он выдает ошибку
Call to a member function runningUnitTests() on null

at vendor/laravel/framework/src/Illuminate/Log/LogManager.php:568

Я пытался устранить эту ошибку, поместив dd() в класс LogManager
protected function parseDriver($driver)
{
$driver ??= $this->getDefaultDriver();
dd($this->app); // app->runningUnitTests()) {
$driver ??= 'null';
}

return $driver;
}

Но это показывает, что $this->app не имеет значения null.
Я пробовал макет фасада Date раньше, и все работает нормально.
Я хочу проверить, что myFunction выполняет действие регистрации. Это правильный способ сделать это?
Обновить
Я также пытался издеваться над этим с помощью функции partsalMock():
public function test_process_verify_card()
{
$this->partialMock(Logger::class, function (MockInterface $mock) {
$mock->shouldReceive('error')->once();
});
$class = new MyClass();
$class->myFunction();
}

Но все равно не работает, показывает ошибку:
Method error() from Mockery_0_Illuminate_Log_Logger should be called
exactly 1 times but called 0 times.

at vendor/phpunit/phpunit/phpunit:98


Подробнее здесь: https://stackoverflow.com/questions/740 ... in-laravel
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как обозначить фасад запроса переменной в Laravel?
    Anonymous » » в форуме Php
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как обозначить фасад запроса переменной в Laravel?
    Anonymous » » в форуме Php
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Фасад процесса Laravel не возвращает запросы Python ([Errno 11001] getaddrinfo не удалось)")
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как имитировать/имитировать события очереди Laravel в тестах?
    Anonymous » » в форуме Php
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Как имитировать/имитировать события очереди Laravel в тестах?
    Anonymous » » в форуме Php
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»