Из вашего комментария к @ ответу Даниэля кажется, что вам просто нужно смоделировать сам репозиторий. Вы по-прежнему хотите вернуть правильный Person
объект, вам просто все равно, как хранилище фактически извлекает этого человека для целей вашего теста.
Я также не понимаю ваш комментарий об использовании Moq в других местах, кроме модульных тестов. Весь смысл Moq в том, что вы можете подделать реальный объект для целей тестирования (возможно, лучше сказать, чем это, но это суть).
Поскольку я не знаю, что именно вы пытаетесь проверить, приведу тривиальный пример:
[TestMethod]
public void WhenValidRequest_ThenReturnSuccess()
{
Mock<IPersonRepository> personRepository = new Mock<IPersonRepository>();
personRepository.Setup(r => r.GetPerson()).Returns(
new Person()
{
FirstName = "Joe",
LastName = "Smith"
/*...*/
});
Foo objectUnderTest = new Foo(personRepository.Object);
bool result = objectUnderTest.MakeRequest();
// Call method using the person repository that you want to test.
// You don't actually care how the repository works, you just want to return a success
// boolean when a person exists for that request.
Assert.IsTrue(result);
}