เพื่อแก้ไขข้อผิดพลาดในการประยุกต์ใช้ผมปรับเปลี่ยนวิธีการตั้งชื่อโดยการเพิ่มการเรียกร้องให้เป็นวิธีการที่มีอยู่ชื่อ postLogin
getShoppingCart
รหัส
protected void postLogin() {
getShoppingCart();
}
อย่างไรก็ตามฉันไม่แน่ใจว่าวิธีที่ดีที่สุดในการเขียนบททดสอบpostLogin
คืออะไร
วิธีที่ 1
ใช้การตรวจสอบจาก Mockito เพียงตรวจสอบว่าวิธีการนั้นถูกเรียก
verify(mock).getShoppingCart();
วิธีที่ 2
ทดสอบผลข้างเคียงของการเรียกใช้เมธอดโดยเรียกค่าของตะกร้าสินค้าของผู้ใช้
AssertNotNull(user.getShoppingCart());
วิธีการหนึ่งดีกว่าวิธีอื่นหรือไม่?
getShoppingCart()
วิธีการของคุณไม่มีผลข้างเคียงคุณไม่จำเป็นต้องทดสอบสิ่งที่เรียกว่า หากมันมีผลข้างเคียงคุณควรเปลี่ยนชื่อจริง ๆ เพราะgetXXX()
วิธีการตามอัตภาพควรเป็น idempotent
getNextValue
? บางคนอาจพูดว่า "อย่าเรียกมันว่าผู้ทะเยอทะยานเปลี่ยนชื่อเป็นnextValue
" แต่ฉันเคยเห็นgetNext
มาก่อน บางทีตัวอย่างที่ดีกว่าน่าจะเป็นวัตถุที่แสดงถึงอิเล็กตรอน สิ่งที่เกิดขึ้นเมื่อฉันโทรgetPosition
? หรือแย่กว่านั้นgetPosition(); getVelocity();