根据测试方法更改配置值

我有一个系统的应用程序来验证帐户(注册 - >获取电子邮件链接激活 - >帐户验证)。 验证流程是可选的,可以用配置值关闭:

// config/auth.php
return [
  // ...
  'enable_verification' => true
];

我想测试注册控制器:

  • 它应该在两种情况下重定向到主页
  • 当验证开启时,主页应显示消息“发送电子邮件”
  • 当验证关闭时,主页应显示消息“帐户已创建”
  • 等等
  • 我的测试方法:

    public function test_UserProperlyCreated_WithVerificationDisabled()
    {
        $this->app['config']->set('auth.verification.enabled', false);
    
        $this
            ->visit(route('frontend.auth.register.form'))
            ->type('Test', 'name')
            ->type('test@example.com', 'email')
            ->type('123123', 'password')
            ->type('123123', 'password_confirmation')
            ->press('Register');
    
        $this
            ->seePageIs('/')
            ->see(trans('auth.registration.complete'));
    }
    
    public function test_UserProperlyCreated_WithVerificationEnabled()
    {
        $this->app['config']->set('auth.verification.enabled', true);
    
        $this
            ->visit(route('frontend.auth.register.form'))
            ->type('Test', 'name')
            ->type('test@example.com', 'email')
            ->type('123123', 'password')
            ->type('123123', 'password_confirmation')
            ->press('Register');
    
        $this
            ->seePageIs('/')
            ->see(trans('auth.registration.needs_verification'));
    }
    

    在调试的时候,我注意到当控制器内部的配置值总是被设置为配置文件中的值时,无论我使用$this->app['config']->set...

    我对用户存储库本身进行了其他测试,以检查它是否在验证处于开启或关闭状态时均可用。 那里的测试表现如预期。

    任何想法为什么它失败的控制器,以及如何解决这个问题?


    如果我理解你的问题 - 你在寻找“如何设置配置参数”,那么你可以使用Config::set($key, $value)

    链接地址: http://www.djcxy.com/p/92255.html

    上一篇: changing a config value depending on test method

    下一篇: Pod Installlation Getting Long Time and Not Install