Tôi hiểu cách giả lập giao diện hoặc cuộc gọi phương thức ảo. Nhưng các framework như TypeMock có thể giả lập mọi thứ trong khung công tác. Cơ chế .NET nào được sử dụng để cung cấp các chức năng như vậy?Làm thế nào để thử tất cả mọi thứ?
Trả lời
Typemock Isolator ví dụ sử dụng CLR profiler API để đánh chặn các cuộc gọi .NET và thay đổi chúng trong thời gian chạy:
Typemock Isolator sử dụng một khía cạnh định hướng thiết kế lập trình tạo ra một mô hình khía cạnh. Nội bộ, nó sử dụng NET Framework profiler API để giám sát việc thực thi của ứng dụng . Khi phương pháp được CLR tải, Typemock Bộ cách ly truy xuất IL và thay thế bằng mã IL được thiết bị. Typemock Bộ cách ly không thay đổi mã số ban đầu của bạn, nó chỉ cần chèn mã mới gọi là khung cách ly Typemock Isolator và trả về giá trị giả.
Mock Everything là một trong những tính năng dành cho khung Mock. tất cả mọi thứ Mock trong ngắn hạn là để thử tất cả mọi thứ trong một lớp học, chẳng hạn như
- đối tượng phụ thuộc mock
- phương pháp phi ảo
- lớp niêm phong
- phương pháp tĩnh
- lớp tĩnh
- phi thành viên công cộng
- loại ngoài công lập
JustMock & TypeMock cả hai đều cung cấp tính năng này.
Bạn thực sự có thể nhìn vào mã nguồn của một số mã nguồn mở khuôn khổ giả như khuôn khổ Moq, dễ dàng Mock, Rhino Mocks, vv
Tiết lộ: Xin lưu ý rằng liên kết được cung cấp là các trang web của riêng tôi
- 1. Làm thế nào để git reset --hard tất cả mọi thứ nhưng 4 file
- 2. Git kéo không kéo tất cả mọi thứ
- 3. thông số hàng loạt: tất cả mọi thứ sau% 1
- 4. Làm thế nào để loại bỏ tất cả mọi thứ trong một DIV ngoại trừ một yếu tố?
- 5. Tại sao/như thế nào là tất cả mọi thứ $() dựa trên jQuery?
- 6. ruby regex - làm thế nào để phù hợp với tất cả mọi thứ cho đến nhân vật -
- 7. Làm thế nào để có được tất cả mọi thứ sau khi một chỉ số nhất định trong chuỗi C#
- 8. Làm thế nào để thiết lập lại tất cả mọi thứ Heroku trong Git của tôi/Rails 3.1 Dự án
- 9. Regular Expression để nhận tất cả mọi thứ sau dấu gạch chéo cuối cùng
- 10. bash awk cột 1 đầu tiên và cột thứ 3 với tất cả mọi thứ sau
- 11. Thay thế/loại bỏ tất cả mọi thứ giữa hai nhân vật
- 12. Làm cách nào để bạn định cấu hình S3 và Cloud Front để truyền video HTML5? Đã thử tất cả mọi thứ
- 13. Làm thế nào để có được trang facebook rss feed (tất cả mọi người)
- 14. Regex loại bỏ tất cả mọi thứ sau: (bao gồm cả :)
- 15. Nhận tất cả mọi thứ sau và trước nhân vật nào đó trong SQL Server
- 16. Làm thế nào để chạy tất cả các thử nghiệm với minitest?
- 17. Làm cách nào để xóa mọi thứ trong Redis?
- 18. Regex - phù hợp với tất cả mọi thứ nhưng dấu gạch chéo
- 19. làm thế nào tôi có thể sửa chữa xcode biên dịch mọi thứ mọi lúc?
- 20. Làm cách nào để mọi người thử khung của tôi?
- 21. Loại bỏ tất cả mọi thứ sau khi nhân vật (và cũng có thể ký tự)
- 22. Java xử lý sử dụng máy chủ proxy, hosing lên tất cả mọi thứ
- 23. MySQL SELECT tất cả mọi thứ vào một chuỗi lớn (cột và hàng)
- 24. Regex - phù hợp với tất cả mọi thứ mà không cần khoảng trắng
- 25. Ruby, chạy lệnh linux từng cái một, bằng SSH và LOG tất cả mọi thứ
- 26. Không gói tất cả mọi thứ trong khối try/catch tạo thành lập trình phòng thủ?
- 27. Làm thế nào để gỡ lỗi ứng dụng js nút với điểm ngắt và mọi thứ?
- 28. Giữ studio trực quan xóa tất cả mọi thứ khỏi bin/khi xây dựng lại?
- 29. CSS Tôi muốn một div nằm ở trên cùng của tất cả mọi thứ
- 30. Loại bỏ thẻ hình ảnh html và tất cả mọi thứ ở giữa từ một chuỗi
Cám ơn câu trả lời của bạn. Bạn có thể giới thiệu một bài viết hay về API này không? –
[Bài viết này] (http://msdn.microsoft.com/en-us/magazine/cc300553.aspx) là một khởi đầu tốt. –