2
void를 반환하는 저장소에서 Add 메서드를 테스트하고 싶습니다. 나는 데이터베이스를 치지 않고 요소 추가를 테스트하는 것에 관심이있다. 이것이 올바른 방법입니까?Moq를 사용하여 void 반환 메소드를 모방하는 올바른 방법은 무엇입니까?
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));
뭔가가 내부 목록에 추가되는지 테스트하려는 것 같습니다. 좋아. 모의 객체를 사용한다면 왜 클래스에 가짜 데이터베이스를 제공하지 않을까요? – IanNorton
해당 코드를 사용하면 Add 메서드가 매우 복잡한 방식으로 호출되었는지 확인하는 것입니다. –