(Jak wskazują tagi, używam moq).Jak wyśmiać właściwość tylko do odczytu, której wartość zależy od innej właściwości makiety
Mam interfejs tak:
interface ISource
{
string Name { get; set; }
int Id { get; set; }
}
interface IExample
{
string Name { get; }
ISource Source { get; set; }
}
W mojej aplikacji, konkretne przypadki IExample zaakceptować DTO (IDataTransferObject) jako źródło. Niektóre właściwości dotyczące konkretnej implementacji IExample są po prostu przekazywane do źródła. Tak ...
class Example : IExample
{
IDataTransferObject Source { get; set; }
string Name { get { return _data.Name; } }
}
Chciałbym stworzyć autonomiczną próbną IExample (autonomicznego znaczenia, że nie mogę użyć zmiennej przechwycony ponieważ kilka wystąpień mock IExample zostanie utworzony w trakcie testu) i ustaw makietę tak, że IExample.Name zwraca wartość IExample.Source.Name. Tak, chciałbym stworzyć makietę coś takiego:
var example = new Mock<IExample>();
example.SetupProperty(ex => ex.Source);
example.SetupGet(ex => ex.Name).Returns(what can I put here to return ex.Source.Name);
Zasadniczo, chcę skonfigurować makiety do powrotu, jako wartość jednej nieruchomości, wartość nieruchomości o podobiektu z mock.
Dzięki.
Dokładnie to, czego chcę. Nigdy nie przyszło mi do głowy, aby uchwycić lokalną zmienną, którą jest Mock, do której chcę się odwołać, aby uzyskać podstawową wartość. To sprawia, że mój mózg boli. – wageoghe