我正在使用Laravel的收银台进行计费,这非常棒。我正在努力做好并保持我的代码测试,但我在“假装”用户订阅时遇到了麻烦。
我试过了:
$user = App\Models\User::create([
'first_name' => $this->faker->firstName,
'last_name' => $this->faker->lastName,
'email' => $this->faker->email,
'password' => 'password1234',
'stripe_plan' => 'name_of_plan',
'stripe_active' => 1
]);
$this->be($user);
但如果我再检查$user->onPlan('name_of_plan')
,我会false
:(
有办法做到这一点吗?我确信你可以欣赏我真的不想启动支付系统,直到我有测试支持它!
答案 0 :(得分:1)
检查'stripe_plan'和'stripe_active'是否定义为可填写用户。如果它们不是那么它可能实际上没有在User :: create()中设置这些值,这就是你的测试失败的原因。
class User extends Model implements AuthenticatableContract, CanResetPasswordContract, BillableContract {
use Authenticatable, CanResetPassword, Billable;
protected $table = 'users';
protected $fillable = [
'first_name',
'last_name',
'email',
'password',
'stripe_plan',
'stripe_active'
];
}