Wie zum Hohn eine readonly-Eigenschaft, deren Wert abhängig ist von einer anderen Eigenschaft von Mock

(Markiert durch die tags, die ich benutze moq).

Ich habe ein interface wie dieses:

interface ISource
{
  string Name { get; set; }
  int Id { get; set; }
}

interface IExample
{
  string Name { get; }
  ISource Source { get; set; }
}

In meiner Anwendung, konkrete Instanzen von IExample akzeptieren ein DTO (IDataTransferObject) als Quelle. Einige Eigenschaften für die konkrete Umsetzung von IExample sind einfach delegiert an die Quelle. So...

class Example : IExample
{
  IDataTransferObject Source { get; set; }

  string Name { get { return _data.Name; } }
}

Ich würde gerne eine standalone-mock IExample (standalone bedeutet, dass ich nicht verwenden können, eine aufgenommene variable, da mehrere Instanzen des IExample mock erstellt werden, die im Verlauf einer test) und setup der Attrappe, so dass IExample.Name gibt den Wert des IExample.Quelle.Name. Also, ich würde gern ein mock so etwas wie dieses:

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);

Im wesentlichen, ich möchte konfigurieren Sie den mock zurück, wie der Wert einer Immobilie, der Wert einer Eigenschaft ein Unterobjekt des mock.

Dank.

InformationsquelleAutor wageoghe | 2012-07-18
Schreibe einen Kommentar