8
Więc próbuję zwrócić szydzili z innego typu szydzili typu, jakie poczyniła pewne postępy, ale ja utknęłam tutaj (nazwy interfejsu zostały uproszczone)Mocking typ zwracanej z innego typu szydzili użyciu Moq
Rozważ interfejs IFoo i IFooItem. Dodaj na wywołanie typu IFoo, przechodząc w IBAR zwraca IFooItem
interface IFoo
{
IFooItem Add(IBar bar);
}
interface IFooItem
{
int fooItemId {get; set;}
}
Również mam IFooRepository, który próbuję użyć Min drwić tak można drwić dodając element.
Więc
var mockFooRepository = new Mock<IFooRepository>();
mockFooRepository.Setup(m=> m.Add(It.IsAny<IBar>()))
.Returns(
// What is the correct way to mock properties of a new IFooItem from
// mocked properties of IBar
// essentially a new mocked type of IFooItem that can read from IBar
// so IFooItem.Property = somevalue, IFooItem.Property2 = IBar.SomeProp
);
Powiedziałbym, nie rób tego. Tworzenie zależności między wyśmiewanymi obiektami wydaje się nierozsądne. Po prostu jawnie udawaj i ustaw właściwości, do których odwołuje się twój test podrzędny. Jeśli 'IFooItem.Property2' i' IBar.SomeProp' zawsze będą takie same, po prostu ustaw je tak samo. – bhamlin