Thuta Learning
ရှာဖွေရန်
AdvancedWeb Developmentintermediate

Testing နှင့် Debugging Workflow

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Test အမျိုးအစားတစ်ခုချင်းစီ၏တာဝန်ကို သိရန်
  • Build မတိုင်မီ automated checks run ရန်
  • Error message နှင့် reproduction steps ရေးတတ်ရန်

Bug တက်မှ console ထဲလိုက်ရှာတာထက် ပုံမှန်စစ်ဆေးတဲ့လမ်းကြောင်းရှိတာက ပိုမြန်ပါတယ်။ Test အကုန်ကိုတစ်မျိုးတည်းနဲ့မရေးဘဲ function အတွက် unit test၊ interactive UI အတွက် component test၊ အရေးကြီး user journey အတွက် browser test ခွဲသုံးပါ။

နားလည်ထားရမယ့် အချက်

TypeScript က data shape error အများကြီးကို run မလုပ်ခင်ဖမ်းပေးပါတယ်။ ESLint က code quality pattern ကိုစစ်ပြီး unit test က validation helper လို logic ကိုမြန်မြန်စစ်ပါတယ်။ End-to-end test က login၊ create note၊ deploy page လို တကယ့် flow ကို browser အနီးစပ်ဆုံးစစ်ပါတယ်။ Server Component ကို unit test တိုက်ရိုက်လုပ်တာထက် data function ကိုသီးခြားစစ်ပြီး async UI flow ကို E2E နဲ့စစ်တာ ပိုလက်တွေ့ကျနိုင်ပါတယ်။

အတူတူ စမ်းရေးကြည့်မယ်

typescript
import { describe, expect, it } from "vitest";
import { validateTitle } from "./validate-title";

describe("validateTitle", () => {
  it("စာတိုလွန်းရင် error ပြန်သည်", () => {
    expect(validateTitle("Hi")).toEqual({ ok: false });
  });

  it("သင့်တော်သော title ကိုလက်ခံသည်", () => {
    expect(validateTitle("Next.js Notes")).toEqual({ ok: true });
  });
});

Code က ဘယ်လိုအလုပ်လုပ်သလဲ

Test က title အတိုကို reject လုပ်ပြီး သင့်တော်တဲ့ title ကို accept လုပ်တာစစ်ပါတယ်။ Bug report ရေးချိန် expected၊ actual၊ steps နဲ့ environment ကိုမှတ်ထားရင် ပြန်ဖော်ထုတ်ရလွယ်ပါတယ်။

You should see
Validation rule နှစ်ခုလုံး test pass ဖြစ်ပြီး regression ကို နောက်ပိုင်းဖမ်းနိုင်မည်။

၅ မိနစ် စမ်းကြည့်

Note create flow အတွက် success case တစ်ခုနဲ့ empty title error case တစ်ခု ရေးပါ။

Next.js — TestingNext.js

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Implementation detail ကိုသာ test လုပ်ပြီး user မြင်ရသည့် behavior မစစ်ခြင်း
  • Test မအောင်မြင်တာကို skip လုပ်ပြီး အကြောင်းရင်းမရှာခြင်း

လေ့ကျင့်ခန်း

Note create flow အတွက် success case တစ်ခုနဲ့ empty title error case တစ်ခု ရေးပါ။

You'll know it worked when: Validation rule နှစ်ခုလုံး test pass ဖြစ်ပြီး regression ကို နောက်ပိုင်းဖမ်းနိုင်မည်။

Testing နှင့် Debugging Workflow | Thuta Learning