So verspotten Sie einen Methodenaufruf, der ein dynamisches Objekt übernimmt
Angenommen, ich habe Folgendes:
<code>public interface ISession { T Get<T>(dynamic filter); } } </code>
Und ich habe den folgenden Code, den ich testen möchte:
<code>var user1 = session.Get<User>(new {Name = "test 1"}); var user2 = session.Get<User>(new {Name = "test 2"}); </code>
Wie würde ich diesen Anruf verspotten?
Mit Moq habe ich es satt:
<code>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}); </code>
Und das hat nicht funktioniert. Die zurückgegebenen Ergebnisse sind null
Ich habe auch Folgendes mit Rhino Mocks versucht:
<code>var session = MockRepository.GenerateStub<ISession>(); session.Stub(x => x.Get<User>(new {Name = "test 1"})).Return(new User{Id=1}); </code>
Auch kein Glück. Wieder Null.
Wie würde ich das machen?
Vielen Dank,