Nói rằng tôi có như sau:Làm thế nào để thử một phương pháp gọi mà phải mất một đối tượng năng động
public interface ISession
{
T Get<T>(dynamic filter); }
}
Và tôi đã đoạn mã sau mà tôi muốn thử nghiệm:
var user1 = session.Get<User>(new {Name = "test 1"});
var user2 = session.Get<User>(new {Name = "test 2"});
Làm thế nào tôi sẽ nhạo báng cuộc gọi này?
Sử dụng Moq, tôi mệt mỏi làm điều này:
var sessionMock = new Mock<ISession>();
sessionMock.Setup(x => x.Get<User>(new {Name = "test 1")).Returns(new User{Id = 1});
sessionMock.Setup(x => x.Get<User>(new {Name = "test 1")).Returns(new User{Id = 2});
Và điều đó không làm việc. Các kết quả trả về là null
Tôi cũng đã cố gắng để làm như sau với Rhino Mocks:
var session = MockRepository.GenerateStub<ISession>();
session.Stub(x => x.Get<User>(new {Name = "test 1"})).Return(new User{Id=1});
Không may mắn trong hai. Null một lần nữa.
Vậy tôi sẽ làm điều này như thế nào?
Cảm ơn,
Hoàn hảo! Chính xác những gì tôi cần. Cảm ơn bạn! –