Hãy thử gọi Mockito.when(foo.getBar()).thenReturn(baz)
và Mockito.verify(foo).getBar()
, sẽ không phụ thuộc vào nhập tĩnh. Không giống như chú thích @Mock
, về mặt kỹ thuật là một lớp, when
và verify
là các phương pháp tĩnh trên lớp Mockito.
Một khi bạn đã làm việc đó, sau đó cố gắng nhập khẩu tĩnh mà David ám chỉ:
import static org.mockito.Mockito.when; // ...or...
import static org.mockito.Mockito.*; // ...with the caveat noted below.
này sau đó sẽ cho phép bạn sử dụng Mockito.when
mà không chỉ định lớp Mockito
. Bạn cũng có thể sử dụng ký tự đại diện như vậy, nhưng mỗi this SO answer các Java docs khuyên bạn nên sử dụng ký tự đại diện ít - đặc biệt vì nó có thể bị hỏng nếu phương pháp tĩnh có tên tương tự được thêm vào Mockito sau này.
Thêm import org.mockito.*;
không đủ vì thêm tất cả các lớp trong gói org.mockito
, nhưng không phải là phương thức trên org.mockito.Mockito
.
Đối với Eclipse nói riêng, bạn có thể thêm nhập tĩnh bằng cách đặt con trỏ trên phần when
của Mockito.when
và nhấn Control-Shift-M ("Thêm nhập"). Bạn cũng có thể thêm org.mockito.Mockito
vào Favorites (Window> Preferences> Java> Editor> Content Assist> Favorites> Loại mới) để tất cả các phương thức tĩnh Mockito hiển thị trong lời nhắc hỗ trợ nội dung Ctrl-Space ngay cả khi bạn chưa nhập chúng . (Bạn cũng có thể muốn làm điều này cho org.mockito.Matchers, về mặt kỹ thuật có sẵn trên org.mockito.Mockito thông qua kế thừa, nhưng có thể không hiển thị trong Eclipse vì lý do đó.)
Nguồn
2012-12-31 01:19:32
Bạn đã bao gồm đúng nhập khẩu tĩnh chưa ? –
Đó là những gì? –
nhập static org.mockito.Mockito. *; –