Я пытаюсь высмеять журнал 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
Невозможно имитировать частичный бревенчатый фасад в Laravel ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1732700599
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
Подробнее здесь: [url]https://stackoverflow.com/questions/74095458/cannot-mock-partial-log-facade-in-laravel[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия