Sto scrivendo alcuni test unitari per un metodo di estensione che ho scritto su IPrincipal
. Per aiutare, ho creato un paio di classi di supporto (un codice per i membri non-implementate delle interfacce è stato omesso per brevità):Come si crea uno stub di test delle unità per un'interfaccia contenente un membro di sola lettura?
public class IPrincipalStub : IPrincipal
{
private IIdentity identityStub = new IIdentityStub();
public IIdentity Identity
{
get { return identityStub; }
set { identityStub = value; }
}
}
public class IIdentityStub : IIdentity
{
public string Name { get; set; } // BZZZT!!!
}
Tuttavia, la proprietà Name
nell'interfaccia IIdentity
è di sola lettura (l'interfaccia IIDentity
specifica un getter ma non un setter per la proprietà Name).
Come posso impostare la proprietà Name nel mio oggetto stub a scopo di test se l'interfaccia lo ha definito come una proprietà di sola lettura?
Costruttore? i.e 'IIdentityStub' avrà un costruttore parametrizzato che accetta Nome come parametro. – shahkalpesh
Il tuo "BZZZT" si riferisce a un errore di compilazione? Sono stato in grado di compilare il tuo campione bene (con un punto e virgola sulla proprietà Identity, ovvero). – micahtan
@micahtan: Sì, ma quando provate a scrivere un test contro di esso e impostate il valore di 'Name' nel test, il compilatore si lamenterà che' Name' è di sola lettura, perché la proprietà 'Name' in' IIDentity' non ha un setter definito. –