В идеале вы бы сделали несколько интеграционных тестов для них, но если вы хотите провести его модульное тестирование, есть возможные пути, включая тот, который не был упомянут в комментариях к исходному вопросу.
Первый.
При тестировании вашего crud вы можете использовать .Verify, чтобы проверить, действительно ли были вызваны методы Create.
mock.Verify(foo => foo.Execute("ping"));
С помощью Verify вы можете проверить, что аргумент был определенным аргументом, определенного типа и сколько раз метод был вызван на самом деле.
Второй.
Или, если вы хотите проверить фактические объекты, которые были добавлены в коллекцию репозитория, вы можете использовать метод .Callback на макете.
В вашем тесте создайте список, который будет получать объекты, которые вы создаете.
Затем в той же строке, где вы вызываете вашу установку, добавьте обратный вызов, который вставит созданные объекты в список.
В ваших утверждениях вы можете проверить элементы в списке, включая их свойства, чтобы убедиться, что были добавлены правильные элементы.
var personsThatWereCreated = new List<Person>();
_repository.Setup(r => r.Create(newPerson)).Callback((Person p) => personsThatWereCreated.Add(p));
// test code
// ...
// Asserts
Assert.AreEuqal(1, personsThatWereCreated.Count());
Assert.AreEqual("Bob", personsThatWereCreated.First().FirstName);
В вашем примере вы создаете человека, а затем добавляете его в настройку. Использование метода обратного вызова здесь было бы бесполезным.
Вы также можете использовать эту технику для увеличения переменной, чтобы подсчитать, сколько раз она была вызвана.