کد بوی 254 – صریح باشید

شما ادعا می کنید که اتفاقی افتاده است، اما چرا؟

TL;DR: هنگام ایجاد آزمایش‌ها برای اطمینان از وضوح و قابلیت نگهداری صریح باشید

چالش ها و مسائل

  • خوانایی
  • جفت شدن به پایگاه‌های داده خارجی، حالت جهانی یا تک‌تون، روش‌های استاتیک یا سرویس‌های خارجی
  • سختی تعمیر و نگهداری
  • پیچیدگی اشکال زدایی
  • وابستگی های پنهان

راه حل ها

  1. صریح باشید
  2. تنظیم را درون خطی کنید
  3. از تزریق وابستگی استفاده کنید
  4. از تمسخر با احتیاط استفاده کنید

متن نوشته

آزمایش شما به داده های خارجی یا پیکربندی هایی بستگی دارد که بلافاصله در خود آزمایش قابل مشاهده نیستند.

این تنظیمات تست را مبهم می کند و درک اینکه چه چیزی در حال آزمایش است و چرا ممکن است شکست بخورد برای کسی که آن را می خواند دشوار می کند.

هر آزمایشی باید سه مرحله داشته باشد:

  1. راه‌اندازی: هر چیزی را که برای آزمایش لازم است راه‌اندازی و پیکربندی کنید.
  2. تمرین: کد مورد آزمایش را اجرا کنید.
  3. ادعا: نتیجه مورد انتظار را تأیید کنید.

همه آنها باید صریح باشند.

کد نمونه

اشتباه

@Test
void shouldReturnAnswerWhenAnswerExists() {
    User answer = KnowledgeRepository.findAnswerToQuestion(42);
    assertNotNull(answer);
}

درست

@Test
void shouldReturnAnswerWhenAnswerExists() {
    KnowledgeRepository knowledgeRepository = 
        new InMemoryKnowledgeRepository();
    Answer expectedAnswer = new Answer(42, "The Ultimate");
    knowledgeRepository.save(expectedAnswer);
    
    Answer...

Source link