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.
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? –
Đú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
Một [MCVE] (http://stackoverflow.com/help/mcve) có thể sẽ giúp –