Tôi đã sử dụng Moq và yêu thích nó, nhưng tôi đã gặp một vấn đề chế nhạo một số mã cũ (trước khi tôi cố gắng tái cấu trúc nó đi)Tôi có thể sao chép triển khai Moq Mock không?
Điều tôi thực sự muốn làm là có hai mock riêng biệt, với chỉ thực hiện hơi khác nhau, chẳng hạn như mẫu bên dưới.
Mock<IFoo> fooMock = new Mock<IFoo>();
fooMock.SetupGet(f => f.bar).Returns(7);
fooMock.SetupGet(f => f.bar2).Returns(3);
Mock<IFoo> fooMockClone = new Mock<IFoo>(fooMock.Behavior);
fooMockClone.SetupGet(f => f.bar).Returns(9);
Debug.Assert(7 == fooMock.Object.bar);
Debug.Assert(9 == fooMockClone.Object.bar);
Debug.Assert(3 == fooMockClone.Object.bar2);
Debug.Assert(3 == fooMock.Object.bar2);
Đây là ví dụ đơn giản nhưng mã thực là đối tượng có nhiều phương pháp và tôi muốn triển khai hơi khác nhau cho hai phiên bản.
Cảm ơn
Câu hỏi của bạn có vẻ khó hiểu - bạn đã có một copy-paste "whoopsie" với các thiết lập fooMock thứ hai và sự khẳng định thứ hai? –
Bạn hoàn toàn đúng. Tôi đã làm. Đã sửa. Cảm ơn :) –
Chờ, bạn chỉ muốn một đối tượng giả có giá trị thay đổi mỗi khi bạn truy cập vào nó hay cái gì đó? –