【问题标题】:Feature testing Laravel Cashier w/stripe scoping issue?带有条纹范围问题的功能测试 Laravel Cashier?
【发布时间】:2019-07-04 01:54:08
【问题描述】:

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

对于这个问题的相当粗略的例子,我们深表歉意。为了说明问题,我在测试中添加了一些调试:

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

【问题讨论】:

    标签: laravel testing stripe-payments laravel-cashier


    【解决方案1】:

    似乎发生了某种缓存。这样就行了。

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

    【讨论】:

      猜你喜欢
      • 2015-07-25
      • 2018-07-26
      • 2016-05-01
      • 1970-01-01
      • 2020-01-16
      • 2020-11-08
      • 2020-03-26
      • 2020-12-04
      • 1970-01-01
      相关资源
      最近更新 更多