功能测试Laravel Cashier带有条形作用域问题?

时间:2019-02-10 11:22:14

标签: laravel testing stripe-payments laravel-cashier

在测试开始时,我实例化了一个工厂用户,并对其进行了各种测试。在测试结束时,我运行失败的断言。但是,如果我重新加载User并运行相同的断言,它们就会通过。

很抱歉,此问题的示例。为了说明问题,我在测试中添加了一些调试功能:

dump(get_class($this->user) . ' : ' . $this->user->currentPlan());
$reloadUser = \App\User::find($this->user->id);
dump(get_class($reloadUser) . ' : ' . $reloadUser->currentPlan());

两个转储应该相同,但输出为:

"App\User : "
"App\User : Professional Annual"

方法currentPlan()

    public function currentPlan()
    {
        if ($this->subscription('plan')) {
            $plan = Plan::where('stripe_id', $this->subscription('plan')->stripe_plan)->first();

            return $plan->nickname;
        }

        return false;
    }

我希望能显示问题,但是请问是否不清楚。

TIA

1 个答案:

答案 0 :(得分:0)

似乎正在发生某种缓存。这样就可以了。

$this->user = $this->user->fresh();