Để sửa lỗi trong một ứng dụng, tôi đã sửa đổi một phương thức được đặt tên postLogin
bằng cách thêm một cuộc gọi vào một phương thức hiện có tên getShoppingCart
.
Mã
protected void postLogin() {
getShoppingCart();
}
Tuy nhiên, tôi không chắc cách tốt nhất để viết bài kiểm tra đơn vị postLogin
là gì.
Cách tiếp cận 1
Sử dụng xác minh từ Mockito để chỉ cần xác minh rằng phương thức đã được gọi.
verify(mock).getShoppingCart();
Cách tiếp cận 2
Kiểm tra tác dụng phụ của lệnh gọi phương thức bằng cách tìm nạp giá trị của giỏ hàng của người dùng.
AssertNotNull(user.getShoppingCart());
Là một cách tiếp cận tốt hơn so với cách khác?
getShoppingCart()
phương pháp của bạn có tác dụng phụ, bạn không cần phải kiểm tra xem nó có tên là gì không. Nếu nó có tác dụng phụ, bạn thực sự nên thay đổi tên của nó bởi vì getXXX()
các phương thức thường là idempotent.
getNextValue
? Có thể cho rằng, ai đó có thể nói "Đừng gọi nó là getter; đổi tên thành nextValue
", nhưng tôi đã thấy getNext
được sử dụng trước đây. Có lẽ một ví dụ tốt hơn sẽ là một vật thể đại diện cho một điện tử; Điều gì xảy ra khi tôi gọi getPosition
? Hoặc tệ hơn,getPosition(); getVelocity();