Lumen - Сервис-провайдер - Переплет во время юнит-теста - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть следующее в моей начальной загрузке / app.php

$app->bind(Auth0\SDK\JWTVerifier::class, function ($app) {
  return new Auth0\SDK\JWTVerifier([
      'supported_algs' => ['RS256'],
      'valid_audiences' => [
        getenv('AUTH0_AUDIENCE'),
        getenv('AUTH0_AUDIENCE_WEB_APP'),
        getenv('AUTH0_AUDIENCE_IOS')
    ],
      'authorized_iss' => [ 'https://' . getenv('AUTH0_DOMAIN') .'/']  // ['AUTH0_DOMAIN']
  ]);
});

И во время одного из моих тестов я хочу заменить эту привязку на класс Mock, поэтому я делаю это:

    $this->app->instance(Auth0\SDK\JWTVerifier::class, $jwt_verifier);

Но он все еще связывает первую привязку. У меня проблемы с использованием ServiceProviders для выполнения процесса $ app-> bind. Не уверен, что это связано, но я не могу понять, как это исправить.

1 Ответ

0 голосов
/ 12 июля 2018

Вы должны перепривязать привязку в контейнере, что-то вроде этого сработало для меня:

$this->app->bind(Auth0\SDK\JWTVerifier::class, function ($app) use ($jwt_verifier) {
        return $jwt_verifier;
});
...