สารบัญ:

คุณสามารถทดสอบวิธีการแบบคงที่ได้หรือไม่?
คุณสามารถทดสอบวิธีการแบบคงที่ได้หรือไม่?

วีดีโอ: คุณสามารถทดสอบวิธีการแบบคงที่ได้หรือไม่?

วีดีโอ: คุณสามารถทดสอบวิธีการแบบคงที่ได้หรือไม่?
วีดีโอ: คุณมีสายตาดีแค่ไหน? แบบทดสอบเจ๋งๆ ที่แข่งกับเวลา 2024, พฤศจิกายน
Anonim

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

เมื่อพิจารณาถึงสิ่งนี้ คุณจะทดสอบวิธีการแบบคงที่ได้อย่างไร

มีสี่ขั้นตอนง่ายๆ ในการตั้งค่าการทดสอบที่จำลองการโทรแบบคงที่:

  1. ใช้ PowerMock JUnit runner: @RunWith(PowerMockRunner.
  2. ประกาศคลาสทดสอบที่เรากำลังเยาะเย้ย:
  3. บอก PowerMock ชื่อของคลาสที่มีเมธอดแบบสแตติก:
  4. ตั้งค่าความคาดหวังโดยบอก PowerMock ให้คาดหวังการเรียกไปยังเมธอดแบบคงที่:

ในทำนองเดียวกัน เราสามารถจำลองวิธีการคงที่ C # ได้หรือไม่ 4 คำตอบ Moq (และ DynamicProxy-based อื่นๆ) ซึ่งจำลอง กรอบ) ไม่สามารถ เยาะเย้ย อะไรก็ได้ที่ไม่ใช่เสมือนหรือนามธรรม กระบวนการ . อีกทางหนึ่ง คุณสามารถ ปรับโครงสร้างการออกแบบของคุณใหม่เป็นการโทรแบบนามธรรมไปที่ วิธีการคงที่ และมอบสิ่งที่เป็นนามธรรมนี้ให้กับชั้นเรียนของคุณผ่านการฉีดพึ่งพา

ในส่วนนี้คุณจะทดสอบวิธีการส่วนตัวอย่างไร?

การทดสอบหน่วย เฉพาะ API ที่เปิดเผยต่อสาธารณะเท่านั้น เมื่อเขียน การทดสอบหน่วย เลียนแบบพฤติกรรมของลูกค้า มทส. อย่า ทดสอบวิธีการส่วนตัว . ทั้ง การทดสอบหน่วย ทางอ้อมโดยใช้ API สาธารณะหรือแยกออกเป็นคลาสและ ทดสอบ ชั้นเรียนเหล่านั้นแทน

วิธีการแบบคงที่คืออะไร?

ในชวา a วิธีคงที่ คือ กระบวนการ ที่เป็นของคลาสมากกว่าอินสแตนซ์ของคลาส NS กระบวนการ สามารถเข้าถึงได้ทุกอินสแตนซ์ของคลาส แต่ วิธีการ ที่กำหนดไว้ในอินสแตนซ์สามารถเข้าถึงได้โดยสมาชิกของคลาสนั้นเท่านั้น