(Come indicato dai tag, Sto usando moq).Come deridere una proprietà readonly il cui valore dipende da un'altra proprietà di Mock
Ho un interfaccia come questa:
interface ISource
{
string Name { get; set; }
int Id { get; set; }
}
interface IExample
{
string Name { get; }
ISource Source { get; set; }
}
Nella mia applicazione, casi concreti di IExample accettare un DTO (IDataTransferObject) come sorgente. Alcune proprietà sull'implementazione concreta di IExample sono semplicemente delegate alla Sorgente. Ti piace questa ...
class Example : IExample
{
IDataTransferObject Source { get; set; }
string Name { get { return _data.Name; } }
}
vorrei creare una finta autonoma di IExample (significato autonomo che non posso utilizzare una variabile catturato perché diverse istanze del finto IExample saranno creati nel corso di un test) e configurare il Mock in modo tale che IExample.Name restituisca il valore di IExample.Source.Name. Quindi, vorrei creare un qualcosa di finto come questo:
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);
In sostanza, voglio configurare il mock di tornare, come il valore di una proprietà, il valore di una proprietà di un oggetto secondario del finto.
Grazie.
Questo fa esattamente quello che voglio. Non mi è mai venuto in mente di acquisire la variabile locale che è il Mock a cui voglio fare riferimento per ottenere il valore sottostante. Mi fa male al cervello. – wageoghe