#laravel #phpunit #bugsnag
Вопрос:
Я использую bugsnag во всем своем приложении. При написании модульных тестов как я могу проверить, что Bugsnag предупрежден?
Поскольку это фасад, я предполагаю, что должен уметь так издеваться
Bugsnag::shouldReceive("notifyError");
Я получаю эту ошибку, хотя
Received Mockery_3_Bugsnag_Client::leaveBreadcrumb(), but no expectations were specified
Я никуда не звоню leaveBreadCrumb()
в своем приложении.
Вот некоторые дополнительные результаты.
105▕ $events->listen(QueryExecuted::class, function (QueryExecuted $query) use ($show) {
106▕ $this->app->bugsnag->leaveBreadcrumb(
107▕ 'Query executed',
108▕ Breadcrumb::PROCESS_TYPE,
➜ 109▕ $this->formatQuery($query->sql, $show ? $query->bindings : [], $query->time, $query->connectionName)
110▕ );
111▕ });
113▕ $events->listen('illuminate.query', function ($sql, array $bindings, $time, $connection) use ($show) {
Спасибо!
Комментарии:
1. Вы не должны утверждать, что вызывается Bugsnag… это скорее деталь реализации, чем логика для тестирования. Но, в любом случае, ваша проблема в том, что bugsnag делает что-то за кулисами, называет себя, и вы не издеваетесь
leaveBreadcrumb
(как вы можете видеть в Интернете106
, именно так работает bugsnag). Таким образом , вы можете либоpartialMock
удалить тест, либо удалить его, так как это не очень хорошая вещь для тестирования.