0Pricing
Dart Academy · บทเรียน

ม็อก ของจำลอง และความครอบคลุม

แยกหน่วยย่อยและวัดสิ่งที่คุณทดสอบ

ม็อก ของจำลอง และความครอบคลุม เป็นบทเรียน Dart Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Dart Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน

แยกหน่วยออกมา

การทดสอบหน่วยควรตรวจสอบโค้ดหนึ่งส่วนอย่างเป็นอิสระ ฐานข้อมูลหรือเครือข่ายจริงทำให้การทดสอบช้าและไม่แน่นอน เราจึงแทนที่สิ่งเหล่านั้น 🔌

ตัวแทนสำหรับการทดสอบ

ตัวแทนสำหรับการทดสอบทำหน้าที่แทนสิ่งที่โค้ดต้องพึ่งพาจริง ม็อก ของจำลอง และสตับคือรูปแบบที่ใช้กันทั่วไป

ทำความรู้จัก fake

fake มีการทำงานที่ใช้ได้จริงแต่เรียบง่ายกว่า เช่น รายการในหน่วยความจำที่ทำหน้าที่แทนฐานข้อมูลจริง

class FakeRepo implements Repo {
  final _items = <Item>[];
}

ทำความรู้จัก mock

mock บันทึกว่าถูกเรียกใช้อย่างไร เพื่อให้คุณตรวจสอบการโต้ตอบได้ ไม่ใช่เพียงค่าผลลัพธ์สุดท้าย

แพ็กเกจ mockito

แพ็กเกจ mockito สร้างม็อกให้คุณ เพียงใส่คำอธิบายกำกับชนิดที่ต้องการ แล้วเรียกใช้ build_runner เพื่อสร้างม็อก

@GenerateMocks([Repo])
import 'repo_test.mocks.dart';

สร้างสตับด้วย when

ใช้ when เพื่อกำหนดพฤติกรรมของม็อก: เมื่อมีการเรียกใช้เมธอดนี้ ให้คืนค่าดังกล่าว เพื่อให้พฤติกรรมคาดเดาได้

when(repo.find(1))
  .thenReturn(Item('a'));

ตรวจสอบการเรียกใช้

ใช้ verify เพื่อยืนยันว่าเมธอดถูกเรียกใช้และถูกเรียกกี่ครั้ง ซึ่งพิสูจน์ว่าโค้ดของคุณสื่อสารกับสิ่งที่ต้องพึ่งพาได้ถูกต้อง

verify(repo.save(any)).called(1);

สร้างสตับแบบไม่พร้อมกัน

สำหรับเมธอดที่คืนค่า Future ให้กำหนดพฤติกรรมด้วย thenAnswer เพื่อให้ม็อกคืนผลลัพธ์แบบไม่พร้อมกันได้

when(api.load())
  .thenAnswer((_) async => 'ok');

ม็อกกับ fake

เลือกใช้ fake เมื่อต้องการพฤติกรรมที่สมจริง และใช้ม็อกเมื่อต้องการตรวจสอบว่ามีการเรียกใช้รายการใดเกิดขึ้นบ้าง

ความครอบคลุมหมายถึงอะไร

ความครอบคลุมวัดว่าการทดสอบของคุณเรียกใช้บรรทัดใดบ้าง ความครอบคลุมสูงบ่งชี้ถึงการตรวจสอบที่ทั่วถึง แต่อย่างไรก็ไม่รับประกันความถูกต้อง

สร้างรายงานความครอบคลุม

เรียกใช้การทดสอบพร้อมเก็บข้อมูล ความครอบคลุม จากนั้นแปลงข้อมูลเป็นรายงานที่คุณอ่านหรืออัปโหลดไปยังเครื่องมือได้

dart test --coverage=coverage

ตรวจสอบอย่างรวดเร็ว

ตัวแทนสำหรับการทดสอบชนิดใดบันทึกการเรียกใช้เพื่อให้คุณตรวจสอบได้

สรุปทบทวน

คุณแยกหน่วยด้วย fake และ mock สร้างสตับด้วย when ตรวจสอบการเรียกใช้ และวัดความครอบคลุม การทดสอบจึงรวดเร็ว มุ่งเน้น และน่าเชื่อถือ 🎯

คำถามที่พบบ่อย

บทเรียน “ม็อก ของจำลอง และความครอบคลุม” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ม็อก ของจำลอง และความครอบคลุม” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ม็อก ของจำลอง และความครอบคลุม”

แยกหน่วยย่อยและวัดสิ่งที่คุณทดสอบ คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “ม็อก ของจำลอง และความครอบคลุม” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม

ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. test และ expect แรกของคุณ
  2. group, setUp และ tearDown
  3. การทดสอบโค้ดแบบไม่พร้อมกันและสตรีม
  4. ม็อก ของจำลอง และความครอบคลุม
← กลับไปที่ Dart Academy