สารบัญ:
วีดีโอ: คุณสามารถทดสอบวิธีการแบบคงที่ได้หรือไม่?
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
ถึง หน่วยทดสอบคุณ ต้องเอาชิ้นเล็กๆ ของคุณ รหัส rewire การพึ่งพาและ ทดสอบ มันอยู่อย่างโดดเดี่ยว มันยากกับ วิธีการแบบคงที่ ไม่เพียงแต่ในกรณีที่เข้าถึงสถานะโลกแต่ยัง ถ้า พวกเขาแค่เรียกคนอื่น วิธีการแบบคงที่.
เมื่อพิจารณาถึงสิ่งนี้ คุณจะทดสอบวิธีการแบบคงที่ได้อย่างไร
มีสี่ขั้นตอนง่ายๆ ในการตั้งค่าการทดสอบที่จำลองการโทรแบบคงที่:
- ใช้ PowerMock JUnit runner: @RunWith(PowerMockRunner.
- ประกาศคลาสทดสอบที่เรากำลังเยาะเย้ย:
- บอก PowerMock ชื่อของคลาสที่มีเมธอดแบบสแตติก:
- ตั้งค่าความคาดหวังโดยบอก PowerMock ให้คาดหวังการเรียกไปยังเมธอดแบบคงที่:
ในทำนองเดียวกัน เราสามารถจำลองวิธีการคงที่ C # ได้หรือไม่ 4 คำตอบ Moq (และ DynamicProxy-based อื่นๆ) ซึ่งจำลอง กรอบ) ไม่สามารถ เยาะเย้ย อะไรก็ได้ที่ไม่ใช่เสมือนหรือนามธรรม กระบวนการ . อีกทางหนึ่ง คุณสามารถ ปรับโครงสร้างการออกแบบของคุณใหม่เป็นการโทรแบบนามธรรมไปที่ วิธีการคงที่ และมอบสิ่งที่เป็นนามธรรมนี้ให้กับชั้นเรียนของคุณผ่านการฉีดพึ่งพา
ในส่วนนี้คุณจะทดสอบวิธีการส่วนตัวอย่างไร?
การทดสอบหน่วย เฉพาะ API ที่เปิดเผยต่อสาธารณะเท่านั้น เมื่อเขียน การทดสอบหน่วย เลียนแบบพฤติกรรมของลูกค้า มทส. อย่า ทดสอบวิธีการส่วนตัว . ทั้ง การทดสอบหน่วย ทางอ้อมโดยใช้ API สาธารณะหรือแยกออกเป็นคลาสและ ทดสอบ ชั้นเรียนเหล่านั้นแทน
วิธีการแบบคงที่คืออะไร?
ในชวา a วิธีคงที่ คือ กระบวนการ ที่เป็นของคลาสมากกว่าอินสแตนซ์ของคลาส NS กระบวนการ สามารถเข้าถึงได้ทุกอินสแตนซ์ของคลาส แต่ วิธีการ ที่กำหนดไว้ในอินสแตนซ์สามารถเข้าถึงได้โดยสมาชิกของคลาสนั้นเท่านั้น