ฉันกำลังทดสอบ api REST สมมติว่ามันส่งคืนโครงสร้าง JSON วิธีทดสอบเซิร์ฟเวอร์ที่ดีที่สุดคืออะไร? แต่ละขั้นตอนการทดสอบจะประสบความสำเร็จก็ต่อเมื่อก่อนหน้านี้ทั้งหมดประสบความสำเร็จ
โครงสร้าง A: ทดสอบทุกอย่างในครั้งเดียว
- Test method 1:
- make server request
- assert http response code was 200
- assert returned file is not empty
- assert returned file has valid JSON syntax
- assert returned JSON contains key X
นี่น่าจะเป็นทางออกที่ดีที่สุด
ข้อดี:
- คำขอเซิร์ฟเวอร์เดียวเท่านั้น
- ฉันกำลังทดสอบพฤติกรรมโดยรวม "เซิร์ฟเวอร์ส่งคืน JSON ด้วยคีย์ X หรือไม่"
โครงสร้าง B: ค่อยๆเพิ่มการยืนยันลงในการทดสอบแต่ละครั้ง
- Test method 1:
- make server request
- assert http response code was 200
- Test method 2:
- make server request
- assert returned file is not empty
- Test method 3:
- make server request
- assert returned file has valid JSON syntax
- Test method 4:
- make server request
- assert returned JSON contains key X
นี่คือวิธีที่ฉันเริ่มต้นทำมันและฉันเชื่อมั่นว่านี่ควรเป็นวิธีที่จะไปเพราะทุกวิธีทดสอบเพียงสิ่งเดียวเท่านั้นและสิ่งนี้จะสร้างการแยกที่ดีกว่า แต่ตอนนี้ฉันคิดว่าเนื่องจากสิ่งเหล่านี้ไม่ใช่การทดสอบหน่วยการแยกของฉันไม่เหมาะสมและฉันควรทดสอบพฤติกรรมโดยรวม
โครงสร้าง C: ทำการร้องขอหนึ่งครั้งและเรียกใช้วิธีการทดสอบแยกกันในการตอบสนองที่แคชไว้
- make server request and cache it (allow read-only access)
- Test method 1:
- assert http response code was 200 on cached server request
- Test method 2:
- assert returned file is not empty on cached server request
- Test method 3:
- assert returned file has valid JSON syntax on cached server request
- Test method 4:
- assert returned JSON contains key X on cached server request
ข้อดี:
- ไม่มีการร้องขอเซิร์ฟเวอร์ซ้ำ ๆ (แพง)
- ยังคงมีวิธีการทดสอบแบบยืนยันเดียว
โครงสร้างการทดสอบที่เหมาะสมที่สุดที่จะใช้คืออะไร