流明 - 服务提供商 - 在单元测试期间重新绑定

时间:2018-04-24 20:37:41

标签: laravel unit-testing lumen

我的bootstrap / 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->绑定过程时遇到了问题。不确定这是否相关,但我无法弄清楚如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

您必须重新绑定容器中的绑定,这对我有用:

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