Tôi đã sử dụng RhinoMocks trong một thời gian dài, nhưng chỉ bắt đầu nhìn vào Moq. Tôi có vấn đề rất cơ bản này, và nó làm tôi ngạc nhiên rằng điều này không bay ngay ra khỏi hộp. Giả sử tôi có định nghĩa lớp sau:Vượt qua các đối tượng giả lập Moq tới hàm tạo
public class Foo
{
private IBar _bar;
public Foo(IBar bar)
{
_bar = bar;
}
..
}
Bây giờ tôi có một bài kiểm tra nơi tôi cần để Giả lập IBar gửi tới Foo. Trong RhinoMocks tôi chỉ đơn giản là làm như sau, và nó sẽ hoạt động rất tốt:
var mock = MockRepository.GenerateMock<IBar>();
var foo = new Foo(mock);
Tuy nhiên, trong Moq điều này dường như không hoạt động theo cùng một cách. Tôi đang làm như sau:
var mock = new Mock<IBar>();
var foo = new Foo(mock);
Tuy nhiên, bây giờ nó không thành công - nói với tôi "Không thể chuyển đổi từ 'Moq.Mock' thành 'Ibar' Tôi đang làm gì sai cách khuyến khích để làm điều này là gì.? với Moq?
+1 cho là chỉ 10 giây sau câu trả lời đó sẽ là chấp nhận một. Cám ơn! – stiank81
Tôi sẽ không thường gán đối tượng đối tượng cho một biến như thế này vì bạn có thể muốn thiết lập mô hình cho hành vi cụ thể. – skyfoot
nó chỉ là để hiển thị. Do đó là giải pháp cho các lỗi thời gian chạy ông đã có :-) –