Tôi đã cố gắng tạo một trường hợp thử nghiệm mở rộng intstrumentationtestcase, và bất cứ khi nào tôi gọi getinstrumentation() nó trả về một thể hiện null của Instrumentation thay vì một Instrumentation, hiển thị bất kỳ tự động hóa nào Tôi muốn làm vô dụng. Tôi có sự cho phép thiết lập trong manifest cũng mặc dù tôi chỉ thử nghiệm tự động hóa trên cùng một ứng dụng trường hợp này sẽ chạy trên ... bất kỳ ý tưởng?trường hợp thử nghiệm thiết bị đo đạc android - getinstrumentation() trả về null
Trả lời
Tôi đã có một vấn đề tương tự và có vẻ như phương thức getInstrumentation() trả về một công cụ hợp lệ chỉ sau khi phương thức setUp lớp cơ sở (InstrumentationTestCase) được gọi. Vui lòng xem mã bên dưới và kiểm tra thông báo gỡ lỗi LogCat:
import android.app.Instrumentation;
import android.test.InstrumentationTestCase;
import android.util.Log;
public class TestInstrumentation extends InstrumentationTestCase {
private static final String LOG_TAG = BrowseLocationsTest.class.getSimpleName();
private Instrumentation instr;
public TestInstrumentation() {
instr = getInstrumentation();
Log.d(LOG_TAG, "TestInstrumentation instrumentation: " + instr);
}
@Override
protected void setUp() throws Exception {
instr = getInstrumentation();
Log.d(LOG_TAG, "setUp instrumentation: " + instr);
super.setUp();
instr = getInstrumentation();
Log.d(LOG_TAG, "setUp instrumentation: " + instr);
}
public void testInstrumentation() {
Log.d(LOG_TAG, "testInstrumentation instrumentation: " + instr);
}
}
Thiết bị được đặt đúng như mong đợi ngay sau cuộc gọi super.setUp().
Bạn cần tiêm các thiết bị đo đạc lập trình bằng cách gọi injectInstrumentation(InstrumentationRegistry.getInstrumentation());
sử dụng InstrumentationRegistry
từ chính thức Android thử nghiệm-support-lib: 0.1
Tôi nghĩ rằng những gì bạn thực sự cần là bối cảnh, trong Junit4, chúng ta có thể có được bối cảnh của InstrumentationRegistry.getContext();
Đã xảy ra sự cố tương tự khi sử dụng Thư viện Hỗ trợ Thử nghiệm với chú thích '@RunWith (AndroidJUnit4.class)', mặc dù tôi đã đảm bảo đưa công cụ của mình vào phương pháp setUp()
như được chỉ định bởi @Gallal và @Dariusz Gadomski, chỉ tiếp tục ném NullPointerExceptions.
Bật ra, tôi quên bao gồm chú thích @Before
trên phương pháp thiết lập của mình để jUnit4 không chạy chú thích, trong khi trước đó với các kiểm tra thiết bị dựa trên jUnit3, nó sẽ chạy. Kể từ khi tôi thực hiện tiêm thiết bị đo đạc trong setUp(), nó không bao giờ được tiêm ngay cả khi mã trông giống như nó nên đã được tiêm nó.
Vì vậy, thay vì
@Override
protected void setUp() throws Exception {
...
Hãy chắc chắn để sử dụng
@Before
public void setUp() throws Exception {
super.setUp();
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
}
để thay thế.
- 1. Thử nghiệm Android: Chạy thiết bị đo đạc không thành công do 'java.lang.ClassNotFoundException'
- 2. android đồ đạc thử nghiệm
- 3. Thử nghiệm JUnit Launcher ... getActivity không trả về
- 4. Android: Cách cài đặt APK thiết bị đo đạc lên AVD trong Máy chủ không đầu
- 5. Pin Intel: Quy trình chạy thiết bị đo đạc
- 6. Cách lấy ví dụ về Thiết bị đo đạc trong Java
- 7. iOS - UIImage imageNamed: trả về null trên thiết bị
- 8. Sự kiện 'thiết bị đo đạc' javascript - cảm biến nào đo được?
- 9. Làm cách nào để chạy các trường hợp kiểm tra Thiết bị đo đạc Android/Robotium đối với phiên bản phát hành APK?
- 10. Đồ đạc thử nghiệm của Google
- 11. Android LocationManager.getLastKnownLocation() trả về null
- 12. Java Robotium Android - Chạy cùng một thử nghiệm đồng thời trên hai thiết bị khác nhau
- 13. Tôi nên thử nghiệm thiết bị phần cứng Android nào?
- 14. Thử nghiệm nhiều thiết bị Android trên một máy
- 15. android: ứng dụng thử nghiệm trên thiết bị thực
- 16. Làm thế nào để gửi các sự kiện quan trọng đến trình giả lập không đầu trong một thử nghiệm thiết bị đo đạc?
- 17. Android - MediaStore.Video.query() trả về null
- 18. ActivityUnitTestCase getActionBar() trả về null
- 19. Kiểm tra Django FileField sử dụng đồ đạc thử nghiệm
- 20. Thêm mã vào một lớp Java w/Thiết bị đo đạc: ASM hoặc BCEL?
- 21. CGBitmapContextTạo trả về NULL
- 22. Sensor.TYPE_ROTATION_VECTOR trả về null
- 23. Đồ đạc không được nạp trong khi thử nghiệm
- 24. Android Fragment getArguments() trả về null
- 25. Tích hợp các trường hợp thử nghiệm PHPT với PHPUnit
- 26. Phạm vi mã thử nghiệm Android, Eclipse
- 27. Làm cách nào để bạn buộc thay đổi hướng trong thử nghiệm Thiết bị Android?
- 28. UITextfield.text trả về null
- 29. Android - findViewById (R.id.list) trả về null
- 30. Android: SkImageDecoder :: Nhà máy trả về null