Ich versuche, ein Datenrepository-Objekt zu verspotten, aber nachdem ich eine Erwartung für mein MockRepository gesetzt habe, gibt es jedes Mal null zurück. Mein Code ist wie folgt: Rhino Mocks: Mocked-Methode gibt null zurück
[Test]
public void GetById_NotNull()
{
Person expectedPerson = new Person() { Id = 1, Name="Jon"};
MockRepository MockRepository = new MockRepository();
var FakePersonRepository = MockRepository.StrictMock<IRepository<Person>>();
FakePersonRepository.Expect(action => action.Get(1)).IgnoreArguments().Return(expectedPerson);
PersonService PersonService = new PersonService(FakePersonRepository);
Person returnedPerson = PersonService.Get(1);
Assert.IsNotNull(returnedPerson);
}
//and inside my person service
public class PersonService
{
private IRepository<Person> _PersonRepository;
public PersonService(IRepository<Person> PersonRepository)
{
this._PersonRepository = PersonRepository;
}
public Person Get(int Id)
{
Person p = _PersonRepository.Get(Id);
return p;
}
}
Die Behauptung am Ende des Tests fehlschlägt und zurückgegebene Person ist immer Null. Ich weiß, dass ich mit meinen gespielten Ideen etwas falsch machen muss.
die IgnoreArguments Ja ist überflüssig. Es ist die Wiederholung, die ich vermisste. –