INTRO
Để làm rõ câu hỏi của bạn và đặt vào một chổ các lớp bạn đang yêu cầu, nó là điều cần thiết trước khi chia thử nghiệm trong hai loại. kiểm tra JUnit (về mặt lý thuyết đồng bằng Java) và Instrumentation kiểm tra (đó cũng là một phần của gói thử nghiệm JUnit nhưng cho phép bạn kiểm tra nhiều chức năng liên quan đến Android SDK).
Kiểm tra JUnit truyền thống cô lập một phần mã và chạy thử nghiệm. Kiểm tra thiết bị đo lường truy cập thay vì nhiều hơn bao gồm các thành phần Android. NHƯNG C THENG NHỮNG THỬ NGHIỆM CỐ ĐỊNH DERIVE TỪ GÓI JUNIT mặc dù chúng được khởi tạo trong hệ thống ngay cả trước khi bất kỳ mã ứng dụng nào được chạy và điều này giải thích tại sao chậm hơn, hơn nữa chúng cần một trình mô phỏng hoặc điện thoại chạy ứng dụng bạn đang thử nghiệm được thực hiện.
(Theo in đậm tất cả các lớp bạn đề cập, nhưng có những người khác thậm chí còn được sử dụng nhiều hơn mà tôi sẽ viết mà không có không có ký tự in đậm).
**** ĐẦU PHẦN ** (kiểm tra Junit) **
A) kiểm tra Junit rằng mở rộng TextCase (thường nhanh hơn so với Instrumentation, và kết hợp tốt với framweworks Mock)
AndroidTestCase: Nó cho phép truy cập vào bối cảnh hoạt động bạn đang thử nghiệm và tài nguyên của chúng, đó là lớp cơ sở mở rộng các lớp con chuyên biệt hơn, nó là lý tưởng để truy cập cơ sở dữ liệu, dữ liệu hệ thống tệp. Bạn có thể dễ dàng gọi getContext() và truy cập vào Tài nguyên mà không cần thiết lập một liên hệ trực tiếp với các Hoạt động như với các bài kiểm tra Instrumentation.
ApplicationTestCase kiểm soát môi trường nơi bạn nhắn tin cho ứng dụng, chủ yếu là bối cảnh và vòng đời. Các phần mở rộng thực sự hữu ích khác của AndroidTestCase cho phép bạn kiểm soát các Trình tải, Dịch vụ và Nhà cung cấp Nội dung, nhưng vì một số lý do vẫn không phải bất kỳ bộ thu phát nào mà bạn có thể gọi nó [gián tiếp] [1] bằng phương thức InstrumentationRegistry.getTargetContext() và sau đó instantiating BroadCastReceiver . Ngoài ra nó là thực sự phổ biến để sử dụng khung Mock khác nhau với Junit đó là thường nhanh hơn so với InstrumentationTests
-.¸-.-.-.-.-.-.-.--
**** THỨ HAI PHẦN ** (kiểm tra Instrumentation) **
B)kiểm tra đo lường, rằng mở rộng TestCase đang xem xét kiểm tra chức năng, tập trung nhiều hơn để bảo đảm rằng họ làm việc tốt với phía người dùng, Xem một phần của MVC . Họ thường chậm hơn so với loại được đề cập khác
InstrumentationTestCase là một lớp cơ sở hữu ích để gửi các sự kiện quan trọng để giao diện người dùng để mô phỏng các phím bàn phím QWERTY hoặc nút DPAD, cũng nó sẽ khởi động Hoạt động đó phải được kiểm tra, và thậm chí Intents
ActivityTestCase thường là không được sử dụng một mình, nó chỉ có mã chung cho các lớp con, nhưng trong trường hợp bạn không hài lòng bởi 3 lớp thừa hưởng từ lớp này (xem bên dưới) như một thành phần tương lai mới, bạn có thể sử dụng nó theo thời gian sẽ không tồn tại Lớp TestCase chuyên dụng.
ActivityInstrumentationTestCase2 là lớp Instrumentation được sử dụng nhiều nhất để viết các kiểm tra chức năng, từ hàm tạo được gọi là cá thể của Activity để kiểm tra. Về cơ bản bạn gọi hoạt động với getActivity() và bạn có thể chạy một cách pratically bất kỳ phương thức nào của Activity đó.
ActivityInstrumentationTestCase, bị phản đối, và ActivityUnitTestCase rằng mặc dù là dưới Instrumentation là tương tự như một bài kiểm tra đơn vị
gì về InstrumentationTestCase? – Zorb
ActivityUnitTestCase không thể trợ giúp thêm cho API24 – sunnyleevip