คุณล้อเลียนคลาสคงที่ได้อย่างไร?
คุณล้อเลียนคลาสคงที่ได้อย่างไร?

วีดีโอ: คุณล้อเลียนคลาสคงที่ได้อย่างไร?

วีดีโอ: คุณล้อเลียนคลาสคงที่ได้อย่างไร?
วีดีโอ: วิธีสยบคนแรง ๆ ทำยังไง มาฟังกัน 5 นาที I EP.11【เรียนฟรี กับ ครูเงาะ】 2024, อาจ
Anonim

สร้างอินเทอร์เฟซสำหรับ DriverManager เยาะเย้ย อินเทอร์เฟซนี้ฉีดผ่านการฉีดการพึ่งพาบางประเภทและตรวจสอบว่า เยาะเย้ย . ข้อสังเกต: เมื่อคุณโทร วิธีคงที่ ภายใน คงที่ เอนทิตี คุณต้องเปลี่ยน ระดับ ใน @PrepareForTest จากนั้นคุณจะต้องเตรียม ระดับ รหัสนี้อยู่ใน

ในที่นี้ เราสามารถจำลองวิธีการคงที่ได้หรือไม่?

Mockito ช่วยให้เราสร้างสรรค์ เยาะเย้ย วัตถุ ตั้งแต่ วิธีคงที่ เป็นของคลาส ไม่มีทางใน Mockito ถึง วิธีจำลองแบบคงที่ . อย่างไรก็ตาม, เราทำได้ ใช้ PowerMock พร้อมกับ Mockito framework เพื่อ จำลองวิธีคงที่.

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

ในทำนองเดียวกัน ผู้คนถามว่า เราสามารถจำลองวิธีการคงที่โดยใช้ MOQ ได้หรือไม่

การเยาะเย้ยวิธีคงที่ เครื่องมือฟรีเช่น ขั้นต่ำสามารถ เท่านั้น เยาะเย้ย อินเทอร์เฟซหรือเสมือน/นามธรรม วิธีการ ในคลาสที่มีคอนสตรัคเตอร์เริ่มต้นสาธารณะ ถ้า คุณ ต้องจริงๆ จำลองวิธีคงที่ , คุณ ต้องใช้เครื่องมือเชิงพาณิชย์เช่น Microsoft Fakes (ส่วนหนึ่งของ Visual Studio Enterprise) หรือ Typemock Isolator

ทำไมวิธีการแบบคงที่จึงไม่ดี?

ในจักรวาลของOO วิธีการแบบคงที่ เป็นปฏิสสาร พวกเขาไม่จำเป็นต้องเป็น แย่ แต่อันตรายเพราะใช้ผิดวิธี มีเพียงสองสถานการณ์เมื่อ วิธีการแบบคงที่ หรือมีการนำตัวแปรไปใช้และไม่ใช่สิ่งที่น่ารังเกียจ วิธีการแบบคงที่ เป็นสิ่งที่มีค่าและถูกต้อง กระบวนการ ของการสร้างวัตถุ