Я также предполагаю, что вы будете использовать метод AddFeed, как этот
Feed myNewFeed = new Feed();
feedRepository.Add(myNewFeed);
и что вы этим не пользуетесь (плохой дизайн)
IFeedRepository feedRepository = new FeedRepository();
Feed myNewFeed = new Feed(feedRepository);
...
myNewFeed.Save();
Я собираюсь догадаться, что вы захотите провести тест примерно так:
[Test]
public void TheTest()
{
IFeedRepository repository = MockFeedsRepository({feed1, feed2, feed3});
Feed newFeed = new Feed();
repository.Add(newFeed);
Assert.AreEqual(4,repository.Count());
}
Если это так, то тест на самом деле не проверяет ничего, кроме вашей реализации фиктивного хранилища в памяти. Это то, что вам действительно нужно делать?
Я бы посоветовал вам вместо этого протестировать реализацию репозитория в L2Sql или проверить взаимодействие классов с интерфейсом IFeedRepository.
А если вы хотите проверить использование интерфейса IFeedRepository, просто сделайте что-нибудь простое, например
[Test]
public void TheTest()
{
IFeedRepository repository = Moq.Mock<IFeedRepository>();
Feed newFeed = new Feed();
repository.Expect(r => r.Add(newFeed)); //no return as it's a void method
//repository.Expect(r => r.Add(newFeed)).Throws(new ApplicationException()); --Test handing of exceptions
//Code to hit the .Add() method
//Assert the Add method was called.
}
Советы по подтверждению вызова метода см. В Использование Moq для определения, вызван ли метод
Надеюсь, это поможет