2009-01-29 20 views
16

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?

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(); 
+2

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

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