<p>我正在尝试使害虫测试文件更易于阅读。</p>
<p>目前,我有一些标准测试:</p>
<pre class="brush:php;toolbar:false;">test('boleh mendapatkan langganan terbaharu pelanggan', fungsi () {
$this->seed(PlansTestSeeder::class);
$this->seed(SubscriptionsTestSeeder::class);
$this->assertDatabaseCount('plans', 2);
$this->assertDatabaseCount('langganan', 0);
Langganan::factory()->create([
"plan_id" => Pelan::di mana("slug", "gangsa")->first()->id
]);
Langganan::factory()->create([
"plan_id" => Pelan::di mana("slug", "perak")->first()->id
]);
Langganan::factory()->create([
"plan_id" => Pelan::di mana("slug", "perak")->first()->id,
"status" => "tamat tempoh"
]);
Langganan::kilang()->dibuang()->buat();
$this->assertDatabaseCount('langganan', 4);
});
test('boleh mendapatkan langganan aktif pelanggan', function () {
$this->seed(PlansTestSeeder::class);
$this->seed(SubscriptionsTestSeeder::class);
$silverPlan = Plan::where("slug", "perak")->first();
$subscription1 = Langganan::factory()->create([
"plan_id" => Pelan::di mana("slug", "perak")->first()->id,
"subscriber_id" => 1,
"jenis_pelanggan" => "ApresourcingFrameworkBillingTestsModelsSubscriber",
"dicipta_di" => sekarang()->subHari(2),
"bermula_pada" => sekarang()->subHari(2)
]);
$subscription2 = Langganan::factory()->create([
"plan_id" => $silverPlan->id,
"subscriber_id" => 1,
"jenis_pelanggan" => "ApresourcingFrameworkBillingTestsModelsSubscriber",
"dicipta_di" => sekarang()->subHari(1),
"bermula_pada" => sekarang()->subHari(1)
]);
$user = Subscriber::find(1);
$langganan = $pengguna->latestSubscription();
jangkakan($langganan->id)->untukBe($langganan2->id);
});</pre>
<p>但是为了提醒自己我编写了哪些测试,我必须一遍又一遍地上下滚动。</p>
<p>Apa yang saya mahu lakukan ialah menukarnya kepada sesuatu seperti ini: </p>
<pre class="brush:php;toolbar:false;">test('boleh mendapatkan langganan terbaharu pelanggan', getLatestSubscription());
test('boleh mendapatkan langganan aktif pelanggan', getActiveSubscriptions());
fungsi getLatestSubscription() {
/// kod fungsi di sini
});
fungsi getActiveSubscriptions() {
// kod fungsi di sini
});</pre>
<p>Walau bagaimanapun, fungsi ujian mengandungi rujukan kepada $this yang tersedia dalam penutupan biasa tetapi tidak dalam fungsi standard kerana saya menetapkannya di sana. </p>
<p>Edit: Saya menggunakan pemalam perosak laravel - Saya tidak pasti sama ada ini mempunyai kesan ke atas penggunaan $this</p>
<p>Adakah terdapat cara untuk menyelesaikan masalah ini? </p>
Your Answer
1 jawapan
Terima kasih atas beberapa petua dalam balasan. Tidak sekemas yang saya harapkan, tetapi sekurang-kurangnya ini bermakna semua panggilan ujian ("keterangan ujian") berada di satu tempat di bahagian bawah fail php.
$createSubscription = function () {
$this->seed(PlansTestSeeder::class);
$this->seed(SubscriptionsTestSeeder::class);
$this->assertDatabaseCount('plans', 2);
$this->assertDatabaseCount('subscriptions', 0);
Subscription::factory()->create([
"plan_id" => Plan::where("slug", "bronze")->first()->id
]);
Subscription::factory()->create([
"plan_id" => Plan::where("slug", "silver")->first()->id
]);
Subscription::factory()->create([
"plan_id" => Plan::where("slug", "silver")->first()->id,
"status" => "expired"
]);
Subscription::factory()->trashed()->create();
$this->assertDatabaseCount('subscriptions', 4);
};
$createBronzeSubscription = function () {
$this->seed(PlansTestSeeder::class);
$this->seed(SubscriptionsTestSeeder::class);
Subscription::factory()->create([
"plan_id" => Plan::where("slug", "bronze")->first()->id
]);
$this->assertDatabaseCount('subscriptions', 1);
};
test('can create subscription', function () use ($createSubscription) {
return \Closure::bind(\Closure::fromCallable($createSubscription), $this, get_class($this))($this);
});
test('can create bronze subscription', function () use ($createBronzeSubscription) {
return \Closure::bind(\Closure::fromCallable($createBronzeSubscription), $this, get_class($this))($this);
});
Alat panas Tag
Hot Questions
function_exists() tidak boleh menentukan fungsi tersuai
2024-04-29 11:01:01
Bagaimana untuk memaparkan versi mudah alih Google Chrome
2024-04-23 00:22:19
Tetingkap anak mengendalikan tetingkap induk, tetapi output tidak bertindak balas.
2024-04-19 15:37:47
Tiada output dalam tetingkap induk
2024-04-18 23:52:34
Di manakah perisian kursus tentang pemetaan minda CSS?
2024-04-16 10:10:18
Hot Tools
vc9-vc14 (32+64 bit) koleksi perpustakaan masa jalan (pautan di bawah)
Muat turun koleksi perpustakaan runtime yang diperlukan untuk pemasangan phpStudy
VC9 32-bit
VC9 32-bit phpstudy pustaka masa jalan persekitaran pemasangan bersepadu
Kotak alat pengaturcara PHP versi penuh
Programmer Toolbox v1.0 PHP Persekitaran Bersepadu
VC11 32-bit
VC11 32-bit phpstudy pustaka masa jalan persekitaran pemasangan bersepadu
SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan
Topik panas
Artikel Panas
Ramalan sepuluh trend teratas dalam pasaran cryptocurrency pada tahun 2025: Di manakah trend seterusnya?
2025-11-07
By DDD
Bagaimana untuk mengenal pasti projek anjing asli dalam bulatan mata wang? Elakkan perangkap dan amaran risiko Zerocoin
2025-11-07
By DDD
Apa Yang Perlu Dilakukan Sekiranya Fon Win10 Tidak Dapat Ditemui Dalam Perisian Selepas Kaedah Pemasangan dan Pengenalan Font Pemasangan_WIN10
2025-11-07
By DDD
Mengendalikan jumlah kemas kini data Q & A yang dinamik dalam bentuk PHP
2025-11-07
By DDD
Cara Boot Windows 10 dari USB: Panduan Pemula
2025-11-07
By DDD





