2016-03-20 14 views
6

Tôi đang sử dụng Sugar ORM cho db và Robolectric để kiểm tra đơn vị. Để sử dụng Sugar ORM với Robolectric i, hãy theo dõi câu hỏi this.Đường ORM cần lưu trữ hồ sơ mỗi khi kiểm tra đơn vị?

Nơi tôi đặt mã của tôi bên dưới vào phương thức startEverTestSugarAppAsFirst và chạy.

new PersonHandler(new Activity()).insertPeople(); 
Person p = Person.findById(Person.class, 1); 
System.out.println(p.getName()); 

Nó sẽ in tên của hồ sơ đầu tiên. Càng xa càng tốt.

Nhưng nếu tôi nhận xét ra //new PersonHandler(new Activity()).insertPeople(); và chạy lại không có bản ghi nào được trả về và ngoại lệ con trỏ null được đưa ra. Tôi nghĩ rằng Sugar ORM lưu trữ các bản ghi ở lần chạy đầu tiên đến một nơi nào đó và tôi có thể truy cập vào các bản ghi này ở lần thứ hai. Mặt khác, nếu tôi chạy trình giả lập, tôi đặt mã bên dưới vào phương thức onCreate của hoạt động chính và trong lần chạy thứ hai với nhận xét ra dòng đầu tiên, tôi có thể xem bản ghi đầu tiên được in trong nhật ký.

new PersonHandler(this).insertPeople(); 
Person p = Person.findById(Person.class, 1); 
Log.v("person", p.getName()); 

Vậy, ORM đường xóa db sau khi kiểm tra đơn vị kết thúc? hoặc nơi nó lưu db để tôi có thể sử dụng nó hơn và hơn nữa?

Trả lời

1

Nó không phải là SugarORM nhưng Robolectric. Nó tạo ra cơ sở dữ liệu tạm thời mỗi bài kiểm tra để không có sự phụ thuộc ẩn giữa chúng.

Đây là điều tốt, kiểm tra đơn vị của bạn nên được chạy thành công không phụ thuộc vào thứ tự mà họ đang chạy

+0

tôi có thể sử dụng SQLite db với db = SQLiteDatabase.openOrCreateDatabase (filepath, null); lệnh trong thử nghiệm đơn vị robolectic. Có cách nào để kết nối đường với một đường dẫn db được chỉ định không? – orkan

+0

http://stackoverflow.com/questions/24225541/android-sugar-orm-with-existing-db-custom-file-path –

+0

Tôi biết bài đăng này. Nhưng câu trả lời là về sao chép địa phương db vào/dữ liệu/dữ liệu/... thư mục mà giả lập có thể truy cập nó. Tôi cần sử dụng db cục bộ để thử nghiệm đơn vị. Bởi vì, tôi đã có db tại/data/data/... location. Nhưng mã orm đường trong thử nghiệm đơn vị không nhìn vào vị trí này và sử dụng nó. – orkan

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