2016-07-25 18 views
7

Tôi muốn giữ tệp Sting and Raw trong mô-đun androidTest của mình và đọc nó khi cần trong bài kiểm tra Espresso.Đọc Espresso Giá trị tệp chuỗi

Tôi giữ thư mục res trong androidTest và có thể đồng bộ hóa và tạo tệp R cho cùng một. Nhưng khi tôi cố gắng truy cập tài nguyên chuỗi bằng cách sử dụng

getTargetContext.getString(R.string.product_name) hoặc sử dụng mAcitivityRule.getActivity.getString(R.string.product_name) Tôi nhận được một số giá trị ngẫu nhiên thậm chí không được sử dụng ở bất kỳ đâu trong tệp tài nguyên.

String output: "res/drawable-v21/abc_action_bar_item_background_material.xml" 

Có cách nào tôi có thể giữ và sử dụng tài nguyên Chuỗi trong mô-đun thử nghiệm dự án của mình và nó sẽ không thêm vào bản dựng sản phẩm của tôi hay không.

Trả lời

12

Bạn nên sử dụng InstrumentationRegistry.getContext() thay vì InstrumentationRegistry.getTargetContext() và sau đó sử dụng gói thích hợp cho file R được tạo ra (theo mặc định nó sẽ nối .test để gói của bạn):

Resources resources = InstrumentationRegistry.getContext().getResources(); 
String name = resources.getString(com.your_package.test.R.string.product_name); 

Chú ý đến test gia vào tên tài nguyên.

+2

Điều này có nên thực hiện trong phương pháp thiết lập '@ Before' không? –

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