ho creato un metodo di estensione chiamata HasContentPermission
sul System.Security.Principal.IIdentity
:Perché il mio metodo di estensione non viene visualizzato nella mia classe di test?
namespace System.Security.Principal
{
public static class IdentityExtensions
{
public static bool HasContentPermission
(this IIdentity identity, int contentID)
{
// I do stuff here
return result;
}
}
}
E mi chiamano così:
bool hasPermission = User.Identity.HasPermission(contentID);
funziona come un fascino. Ora voglio testare l'unità. Per fare questo, tutto quello che ho davvero bisogno di fare è chiamare il metodo di estensione direttamente, in modo da:
using System.Security.Principal;
namespace MyUnitTests
{
[TestMethod]
public void HasContentPermission_PermissionRecordExists_ReturnsTrue()
{
IIdentity identity;
bool result = identity.HasContentPermission(...
Ma HasContentPermission
no intellisense. Ho provato a creare una classe stub che eredita da IIdentity
, ma non ha funzionato. Perché?
O sto andando su questo nel modo sbagliato?
La sintassi nel primo blocco di codice è errata - non è possibile definire un metodo in un ambito di nomi ... È possibile inserire il codice effettivo? –
Sei sicuro che il tuo progetto di test fa riferimento all'assieme in cui risiede il tuo metodo di estensione (anziché solo lo spazio dei nomi)? –
@Reed: ho modificato la domanda per aggiungere il codice mancante. –