関数をクロージャから通常の関数に移動する方法
P粉831310404
P粉831310404 2023-09-05 21:54:44
0
1
589
<p>害虫テスト ファイルを読みやすくしようとしています。 </p> <p>現在、いくつかの標準テストがあります: </p> <pre class="brush:php;toolbar:false;">test('購読者の最新の購読を取得できます', function () { $this->seed(PlansTestSeeder::class); $this->seed(SubscriptionsTestSeeder::class); $this->assertDatabaseCount('plans', 2); $this->assertDatabaseCount('サブスクリプション', 0); サブスクリプション::factory()->create([ "plan_id" => Plan::where("slug", "bronze")->first()->id ]); サブスクリプション::factory()->create([ "plan_id" => Plan::where("slug", "silver")->first()->id ]); サブスクリプション::factory()->create([ "plan_id" => Plan::where("slug", "silver")->first()->id, "ステータス" => "期限切れ" ]); サブスクリプション::factory()->trashed()->create(); $this->assertDatabaseCount('サブスクリプション', 4); }); test('サブスクライバのアクティブなサブスクリプションを取得できます', function () { $this->seed(PlansTestSeeder::class); $this->seed(SubscriptionsTestSeeder::class); $silverPlan = Plan::where("ナメクジ", "シルバー")->first(); $subscription1 = サブスクリプション::factory()->create([ "plan_id" => Plan::where("slug", "silver")->first()->id, "subscriber_id" => 1、 "subscriber_type" => "ApresourcingFramework\Billing\Tests\Models\Subscriber", "created_at" => now()->subDays(2)、 "started_at" => now()->subDays(2) ]); $subscription2 = サブスクリプション::factory()->create([ "plan_id" => $silverPlan->id、 "subscriber_id" => 1、 "subscriber_type" => "ApresourcingFramework\Billing\Tests\Models\Subscriber", "created_at" => now()->subDays(1)、 "started_at" => now()->subDays(1) ]); $user = サブスクライバー::find(1); $subscription = $user->latestSubscription(); Expect($subscription->id)->toBe($subscription2->id); });</pre> <p>しかし、どのテストを書いたかを思い出すために、ページを何度も上下にスクロールする必要があります。</p> <p>私がやりたいのは、これを次のように変更することです: </p> <pre class="brush:php;toolbar:false;">test('購読者の最新のサブスクリプションを取得できます', getlatestSubscription()); test('サブスクライバのアクティブなサブスクリプションを取得できます', getActiveSubscriptions()); 関数 getlatestSubscription() { /// ここに関数コード }); 関数 getActiveSubscriptions() { // ここに関数コード });</pre> <p>ただし、テスト関数には $this への参照が含まれています。これは通常のクロージャで使用できますが、そこに設定したため標準関数では使用できません。 </p> <p>編集: laravel ペスト プラグインを使用しています。これが $this</p> の使用に影響するかどうかはわかりません。 <p>この問題を解決する方法はありますか? </p>
P粉831310404
P粉831310404

全員に返信(1)
P粉563446579

返信でいくつかのヒントをありがとう。期待したほどきちんとしたものではありませんが、少なくとも、すべてのテスト (「テストの説明」) 呼び出しが php ファイルの下部の 1 か所にあることを意味します。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート