Tôi tìm thấy điều này example nơi họ đã sử dụng PowerMock và EasyMock để mở/thử các lớp Menu và MenuItem cho android. Tôi đã cố gắng làm một cái gì đó tương tự với PowerMock và Mockito với lớp Activity.Cố gắng để khai thác lớp Hoạt động android bằng PowerMockito ném RuntimeException "Stub!"
Tôi hiểu rằng rất nhiều phương pháp là cuối cùng và trong Android.jar, tất cả chúng đều chỉ ném RuntimeException ("Stub!").
Tôi cũng hiểu rằng bài kiểm tra này chưa hoàn thành nhưng tôi chỉ muốn xem liệu có thể giả lập lớp Hoạt động trên Android hay không.
Nhưng với điều đó PowerMock cho phép bạn giả lập các lớp học với các phương thức cuối cùng thì mã này có hoạt động không?
@RunWith(PowerMockRunner.class)
@PrepareForTest(Activity.class)
public class MyTestCase extends TestCase {
public void testPlease_JustWork() throws Exception {
Activity mockActivity = PowerMockito.mock(Activity.class);
PowerMockito.when(mockActivity.getTitle()).thenReturn("Title");
}
}
Tôi nghĩ rằng RuntimeException sẽ không còn xảy ra và "Tiêu đề" sẽ được trả lại nhưng nó vẫn ném ngoại lệ.
Tôi đã thử tất cả các loại vật khác nhau như doReturn("Title").when(mockActivity).getTitle();
và suppress(constructor(Activity.class));
Am tôi làm điều gì đó sai hoặc là này chỉ là không thể?
Tôi sẽ thử lại ... – bytebender
Không có súc sắc, bạn có thể cho tôi biết dòng nhập của bạn trông như thế nào không? – bytebender
tôi đã tải lên toàn bộ dự án nhật thực tới http://maik.0x2a.at/PowerMockTests.zip. Bạn có thể cần phải thích ứng với đường dẫn đến android.jar – crazymaik