Tôi đang phát triển phần mềm tải thông tin từ các tệp XML bằng cách triển khai thực hiện của Android java.xml.parsers.DocumentBuilder và DocumentBuilderFactory. Tôi đang viết bài kiểm tra đơn vị của các đối tượng của tôi và tôi cần để có thể cung cấp một loạt các tập tin xml mà sẽ thực hiện các mã được kiểm tra. Tôi đang sử dụng Eclipse và có một dự án thử nghiệm Android riêng biệt. Tôi không thể tìm thấy một cách để đưa xml thử nghiệm vào dự án thử nghiệm sao cho mã được thử nghiệm có thể mở các tệp.Cách cung cấp các tệp dữ liệu cho các bài kiểm tra đơn vị android
- Nếu tôi đặt các tệp vào/tài sản của dự án thử nghiệm, mã được thử nghiệm không thể nhìn thấy.
- Nếu tôi đặt các tệp vào/tài sản của mã đang thử nghiệm, tất nhiên nó có thể xem các tệp, nhưng bây giờ tôi đang làm lộn xộn hệ thống thực của tôi chỉ với các tệp dữ liệu thử nghiệm.
- Nếu tôi sao chép các tệp vào thư mục/sdcard/data, tôi có thể mở chúng từ mã đang được thử nghiệm, nhưng điều đó cản trở việc tự động hoá các thử nghiệm của tôi.
Bất kỳ đề xuất nào về cách có các tệp thử nghiệm xml khác nhau nằm trong gói thử nghiệm nhưng hiển thị với mã đang được kiểm tra sẽ được đánh giá cao.
Sau đây là cách tôi đã cố gắng để cấu trúc các đơn vị kiểm tra:
public class AppDescLoaderTest extends AndroidTestCase
{
private static final String SAMPLE_XML = "sample.xml";
private AppDescLoader m_appDescLoader;
private Application m_app;
protected void setUp() throws Exception
{
super.setUp();
m_app = new Application();
//call to system under test to load m_app using
//a sample xml file
m_appDescLoader = new AppDescLoader(m_app, SAMPLE_XML, getContext());
}
public void testLoad_ShouldPopulateDocument() throws Exception
{
m_appDescLoader.load();
}
}
này không làm việc với file SAMPLE_XML là trong bối cảnh của bài kiểm tra, nhưng AndroidTestCase đang cung cấp một bối cảnh cho hệ thống dưới kiểm tra, không thể xem nội dung từ gói thử nghiệm.
này được mã đổi mà làm việc mỗi câu trả lời đưa ra:
public class AppDescLoaderTest extends InstrumentationTestCase
{
...
protected void setUp() throws Exception
{
super.setUp();
m_app = new Application();
//call to system under test to load m_app using
//a sample xml file
m_appDescLoader = new AppDescLoader(m_app, SAMPLE_XML, getInstrumentation().getContext());
}
Cảm ơn. Điều này làm việc, chỉ có tôi lần đầu tiên đã phải thay đổi trường hợp thử nghiệm của tôi để InstrumentationTestCase. –
Tôi đã sửa đổi câu hỏi của mình để hiển thị mã hoạt động. Cảm ơn bạn đã giúp đỡ. –
+1 cho tùy chọn 2.Chỉ cần thêm thư mục nội dung ở cấp độ res và mã mới 'vừa hoạt động' trong Android Studio. Không cần phải tồn tại với các đường dẫn xây dựng. –