2017-01-06 15 views
13

Vì vậy, tôi có một lớp Cơ sở dữ liệu có phụ thuộc mở rộng SQLOpenHelper và tôi đang thử nghiệm bằng cách sử dụng các thử nghiệm thiết bị Android và Mockito để giả lập các phụ thuộc. Chúng tôi nhận thấy rằng Mockito không thực sự chế nhạo việc triển khai khi thực hiện Mockito.mock(class) thay vì mã thực tế đang chạy và ném ngoại lệ con trỏ null như chúng tôi mong đợi. Trên các thiết bị API 19, các thử nghiệm chạy như mong đợi và các mocks hoạt động chính xác.Mockito mocks chạy mã Android thực tế trong Lollipop hoặc lớn hơn

Có ai có đề xuất hoặc điều gì để thử không? Tôi đã thử các thiết bị và giả lập thực với các kết quả tương tự. Đây có phải là vấn đề về Mockito hay vấn đề về dex-maker không? Tôi không tìm thấy bất kỳ thông tin nào trong khi tìm kiếm.

Sau khi một số thử nghiệm khác, bất kỳ lớp nào tôi giả lập với Mockito thực sự chỉ sử dụng triển khai. Dưới đây là các phụ thuộc của tôi

androidTestCompile 'org.mockito:mockito-core:1.10.19' 
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2' 

Lưu ý: Đây cũng là một mô-đun thư viện nếu có sự khác biệt.

+0

Vui lòng thêm một số mã ví dụ về các bài kiểm tra của bạn. Ngoài ra, tôi giả sử bạn đang nói về InstrumentedUnitTests (androidTest), phải không? –

+0

Đúng vậy. Tôi sẽ lấy một số mã mẫu. Nhưng bất kể những gì tôi cố gắng giả lập Mockito tạo ra cá thể nhưng thực thi mã thực, nhưng chỉ trên> = API21 và chỉ cho dự án này, các ứng dụng khác Mockito dường như hoạt động tốt. – Stampede10343

+0

Một [MCVE] (http://stackoverflow.com/help/mcve) có thể sẽ giúp –

Trả lời

7

Vì vậy, việc thoát khỏi sự phụ thuộc Mockito cũ của chúng tôi và dexmaker và sử dụng mới: Mockito-android

Cố định các vấn đề của chúng tôi

Các vấn đề liên quan