2012-12-30 4 views
7

tôi đã thiết lập Mockito về dự án của tôi với dòng maven này:phương pháp Mockito không thể truy cập

<dependency> 
    <groupId>org.mockito</groupId> 
    <artifactId>mockito-all</artifactId> 
    <version>1.8.5</version> 
    <scope>test</scope> 
</dependency> 

Tôi không có vấn đề sử dụng @Mock chú thích nhưng tôi không thể truy cập và sử dụng phương pháp Mockito như:

when(someMock.someMethod()).thenReturn(); 

Eclipse không nhận ra chúng.

Vui lòng trợ giúp.

+1

Bạn đã bao gồm đúng nhập khẩu tĩnh chưa ? –

+0

Đó là những gì? –

+1

nhập static org.mockito.Mockito. *; –

Trả lời

24

Hãy thử gọi Mockito.when(foo.getBar()).thenReturn(baz)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, whenverify 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 đó.)

+0

+1 cho mẹo hỗ trợ nội dung. Điều đó làm việc cho tôi. – Traxex1909

+0

+1 để biết thêm mẹo về hỗ trợ nội dung: thêm org.mockito.Matchers vì sự cố kế thừa –