Tôi muốn biết những gì đối tượng giả bằng Java. Tại sao chúng ta tạo ra chúng và sử dụng của chúng là gì?Các đối tượng giả lập trong Java là gì?
Trả lời
Đối tượng Mock là đối tượng được sử dụng để kiểm tra đơn vị. Nếu bạn có một đối tượng có các phương thức mà bạn muốn thử nghiệm, và các phương thức đó phụ thuộc vào một số đối tượng khác, bạn tạo một mô hình phụ thuộc hơn là một thực thể của sự phụ thuộc đó. Điều này cho phép bạn kiểm tra đối tượng của bạn trong sự cô lập.
Các khung Java phổ biến để tạo đối tượng giả bao gồm JMock và EasyMock. Chúng thường cho phép bạn tạo các đối tượng giả có hành vi mà bạn có thể xác định, vì vậy bạn biết chính xác những gì mong đợi (theo như giá trị trả về và các hiệu ứng phụ) khi bạn gọi các phương thức trên đối tượng giả.
Ví dụ, một trường hợp sử dụng phổ biến có thể nằm trong ứng dụng MVC, nơi bạn có lớp DAO (đối tượng truy cập dữ liệu) và Bộ điều khiển thực hiện logic nghiệp vụ. Nếu bạn muốn đơn vị kiểm tra bộ điều khiển, và bộ điều khiển có một phụ thuộc vào một DAO, bạn có thể làm cho một giả của DAO mà sẽ trả về các đối tượng giả để điều khiển của bạn. Một điều quan trọng cần lưu ý là nó thường là trường hợp giả định các đối tượng thực hiện cùng một giao diện như các đối tượng mà họ đang chế nhạo - điều này cho phép mã của bạn xử lý chúng thông qua kiểu giao diện, như thể chúng là các thể hiện của điều thực sự.
chỉ vì sở thích của riêng tôi: tên "giả" xuất phát từ đâu? –
Vâng, chính từ "giả" có nghĩa là "giả". Âm thanh tốt hơn một chút so với "đối tượng giả". :) – Jeff
Mock là một từ tiếng Anh có nghĩa là "bắt chước" hoặc "bắt chước". Các đối tượng giả bắt chước các phụ thuộc của đối tượng mà bạn đang thử nghiệm. – danben
Đối tượng giả là đối tượng được sử dụng trong thử nghiệm đơn vị. giúp bạn kiểm tra chức năng duy nhất bạn muốn kiểm tra. bởi vì tất cả các phụ thuộc có thể đạt được bằng cách chế nhạo những đối tượng phụ thuộc đó. Vì vậy, nếu kiểm tra vượt qua bạn sẽ chắc chắn rằng đơn vị của bạn theo thử nghiệm là chính xác.
Vì vậy, nhà văn thử nghiệm tạo ra chúng. Bạn có thể sử dụng EasyMock như một công cụ cho Mocking.
Trích từ đây: http://easymock.org/
Đơn vị kiểm tra là kiểm tra các đơn vị phần mềm trong sự cô lập. Tuy nhiên, hầu hết các đơn vị không hoạt động một mình, nhưng chúng cộng tác với các đơn vị khác. Để kiểm tra một đơn vị riêng biệt, chúng tôi phải mô phỏng các cộng tác viên trong bài kiểm tra . Đối tượng Mock là một thay thế thử nghiệm theo định hướng cho cộng tác viên. Đó là được định cấu hình để mô phỏng đối tượng nó thay thế theo một cách đơn giản. Ví dụ:
Ví dụ: nếu bạn muốn thử nghiệm các cuộc gọi http, bạn sẽ cần phải tạo các đối tượng yêu cầu thực tế, hoàn chỉnh với tất cả các phụ thuộc của chúng. Điều này thường có thể đòi hỏi rất nhiều nỗ lực, do đó việc sử dụng các đối tượng giả tạo cung cấp một đường dẫn nhanh hơn để tạo ra một biểu diễn chính xác của đối tượng bạn cần, mà không có chuỗi phụ thuộc dài.
Đối tượng giả cho phép bạn mô phỏng và xác minh các đối tượng thực, mà không thực sự chạy mã thực trong các đối tượng đó. Bạn có thể thiết lập một mô hình để trả về kết quả cụ thể trên các cuộc gọi phương thức, bạn có thể xác minh rằng phương thức đã hoặc không được gọi và các công cụ thú vị khác.
Mockito là thư viện đối tượng Java đơn giản và đơn giản.
Đối tượng mô phỏng và mô phỏng không dành riêng cho Java.Đối tượng giả là một thử nghiệm đơn vị kỹ thuật trong đó đoạn mã được thay thế bằng cách triển khai giả mạo mô phỏng mã thực. Điều này giúp người ta viết các bài kiểm tra đơn vị nhắm vào chức năng được cung cấp bởi lớp đang được kiểm tra.
Kiểm tra những bài viết này cung cấp một giới thiệu rất tốt để các khái niệm về chế giễu:
Mock Objects (PDF)
Endo-Testing: Unit Testing with Mock Objects (PDF)
Nếu bạn đang tìm kiếm một khuôn khổ giả cho kiểm tra đơn vị trong Java, hãy xem: Mockito. Tôi thấy nó hữu ích cho các bài kiểm tra đơn vị của tôi.
Giấy "Mock Roles, Not Objects" của chúng tôi tốt hơn so với bài kiểm tra Endo gốc: http://www.mockobjects.com /files/mockrolesnotobjects.pdf –
- 1. Lập trình hàm và đối tượng giả
- 2. Cách tốt nhất để giả lập đối tượng bên thứ 3 bằng ruby là gì?
- 3. Đối tượng hạng nhất trong Java và C# là gì?
- 4. Lập trình hướng đối tượng trong Java
- 5. Giả lập đối tượng cửa sổ chung trong require.js
- 6. Là int một đối tượng trong Java?
- 7. Làm cách nào để giả lập/giả mạo đối tượng phiên trong biểu mẫu Web ASP.Net?
- 8. Sự khác nhau giữa các tham chiếu và các đối tượng trong java là gì?
- 9. Tương đương Java của đối tượng Scala là gì?
- 10. Vòng đời của đối tượng Java HttpSession là gì?
- 11. Làm cách nào để giả lập các đối tượng không có thừa kế (trong C)?
- 12. Giả lập đối tượng bằng hàm tạo - Rhino Mocks
- 13. lập trình trong lua, các đối tượng
- 14. Bộ giả lập mockito Java
- 15. Không thiết lập các đối tượng Java để làm bất cứ điều gì nữa?
- 16. @ trong thuộc tính đối tượng là gì?
- 17. đối tượng Class (java.lang.Class) là gì?
- 18. Đối tượng chrome là gì?
- 19. Các đối tượng này trong biểu đồ jmap là gì?
- 20. các bước trong phát hiện đối tượng là gì?
- 21. Sự khác biệt giữa các đối tượng HashMap và Map trong Java là gì?
- 22. Cách tốt nhất để xuất các đối tượng hàm trong Java là gì?
- 23. Siêu đối tượng trong CodeIgniter là gì?
- 24. Biến tham chiếu đối tượng là gì?
- 25. Vượt qua các đối tượng giả lập Moq tới hàm tạo
- 26. Có thể truy vấn đối số được truyền cho đối tượng giả lập Mockito không?
- 27. Cách tạo đối tượng Java trong Clojure
- 28. Đối tượng được chỉ định không được nhận dạng là đối tượng giả. Vấn đề
- 29. 'PermSize' trong Java là gì?
- 30. Cách dễ nhất để duy trì các đối tượng java là gì?
http://www.mockobjects.com/ – hakre