Является ли .Callback правильным способом для насмешки метода, возвращающего пустоту, используя Moq? - PullRequest
2 голосов
/ 11 января 2012

Я хотел бы провести модульное тестирование метода Add в репозитории, который возвращает void.Я заинтересован в тестировании фактического добавления элементов без попадания в базу данных (не в том, был ли вызван Add или нет).Это правильный путь?

var list = new List<Foo>();
var repo = new Mock<IFooRepository>();

repo.Setup(x => x.Add(It.IsAny<Foo>()))
            .Callback((Foo f) =>
            {
                list.Add(f);
            });

repo.Object.Add(new Foo { FooId = 1 });

Assert.IsTrue(list.Any(x => x.FooId == 1));

1 Ответ

3 голосов
/ 11 января 2012

Нет, единственное, что вы здесь тестируете, это сам Moq. Вы можете попробовать высмеивать нижележащий слой, например, I Сессия, если вы используете Nhibernate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...