Chúng tôi đang sử dụng Rhino Mocks để thực hiện một số thử nghiệm đơn vị và cần phải giả lập hai giao diện. Chỉ có một giao diện được thực hiện trên đối tượng và một giao diện khác được triển khai động bằng cách sử dụng một phương pháp hướng khía cạnh. Có cách nào dễ dàng để kết hợp hai giao diện động sao cho một giả có thể được tạo ra và các phương thức được đặt cho cả hai giao diện?Làm cách nào để kết hợp hai giao diện khi tạo mocks?
16
A
Trả lời
3
Một mô hình với nhiều giao diện sử dụng Rhino Mocks thể được tạo ra như vậy:
var mocker = new MockRepository();
var mock = mocker.CreateMultiMock<IPrimaryInterface>(typeof(IFoo), typeof(IBar));
mocker.ReplayAll();
11
Nó không phải năng động, nhưng chắc chắn dễ dàng: tạo ra một giao diện trong lắp ráp thử nghiệm của bạn mà không làm gì khác hơn là thực hiện hai giao diện khác:
internal interface ICombined : IFirstInterface, ISecondInterface {}
Sau đó thử ICombined
.
14
Sử dụng Rhino Mocks
var mock = MockRepository.GenerateMock<IFirst, ISecond>();
mock.Stub(m => m.FirstProperty).PropertyBehavior();
((ISecond)mock).Stub(k=> k.SecondProperty).PropertyBehavior();
Tìm thấy và sử dụng thông tin từ http://www.richard-banks.org/2010/08/mocking-comparison-part-11-multiple.html
+3
nếu bị vấp ngã khi t của anh ta, lưu ý rằng nó tạo ra ** Mock ** và không phải 'GenerateStub'. Phiên bản gốc không có nhiều đối số kiểu. – Default
Các vấn đề liên quan
- 1. Rhino Mocks stubs và mocks chỉ tốt cho giao diện?
- 2. Mocking COM Giao diện bằng cách sử dụng Rhino Mocks
- 3. Làm cách nào để kết hợp hai trường cho dataTextField của giao diện người dùng Kendo tự động hoàn thành?
- 4. Làm cách nào để tạo giao điểm của hai băm?
- 5. Làm cách nào để kết hợp hai ResultSets trong Java?
- 6. Làm cách nào để kết hợp hai bảng trong NHibernate?
- 7. Làm cách nào để kết hợp hai Doctrine 2 ArrayCollection()
- 8. Làm cách nào để kết hợp hai pixel ARGB?
- 9. Tạo XmlRpcUrl Giao diện khi chạy
- 10. Khi nào sử dụng giao diện hoặc lớp trừu tượng? Khi nào sử dụng cả hai?
- 11. Khi nào cần giao diện?
- 12. Lớp Scala để triển khai hai Giao diện Java - làm cách nào?
- 13. Regex - Kết hợp giao diện tích cực và tiêu cực
- 14. Làm thế nào để bạn kết hợp hai repo git?
- 15. Làm cách nào để kết hợp giao diện thông thạo với phong cách chức năng trong Scala?
- 16. Kết hợp Quartz.Net với giao diện người dùng
- 17. Làm thế nào để kết hợp hai mảng byte
- 18. Khi nào tôi nên sử dụng Trình tạo giao diện?
- 19. Làm cách nào để triển khai giao diện trong Ada?
- 20. Làm thế nào để kết hợp hai procs thành một?
- 21. Làm cách nào để giữ logic ứng dụng tách biệt với giao diện người dùng khi các thành phần giao diện người dùng có chức năng tích hợp?
- 22. Làm cách nào để liên kết kiểu dữ liệu DataTemplate với giao diện?
- 23. PHP: Làm thế nào để kết hợp hai lớp này?
- 24. Làm cách nào để UITextView tôn trọng dòng mới trong Trình tạo giao diện?
- 25. Làm cách nào để phát triển giao diện COM?
- 26. Làm thế nào để kết hợp hai chuỗi trong cành?
- 27. Khởi tạo Giao diện?
- 28. Làm cách nào để JMX liên kết với một giao diện cụ thể?
- 29. Làm cách nào để tạo Bộ điều khiển XY như Giao diện người dùng trong WPF
- 30. Làm cách nào để kết hợp hai trang PDF hiển thị trên cùng một trang?
lưu ý rằng 'ReplayAll' là một [phong cách Rhino Mock lỗi thời] (http://stackoverflow.com/questions/6078061/what-is-replayall-and-verifyall-in-rhinomocks) – Default