Rhino Mocks: Mocked method returns null

mockingrhino-mocks

I'm trying to mock a data repository object but after setting an expectation on my MockRepository, it returns null every time. My code is as follows:

    [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;
          }
    }


The assertion at the bottom of the Test fails and returned person is always null. I know I must be doing something wrong with my mock….ideas?

Best Answer

Try doing a

mockRepository.ReplayAll()

after the line where you set your Expect.

Related Topic