Я создал метод расширения под названием HasContentPermission
на System.Security.Principal.IIdentity
:Почему мой метод расширения не отображается в моем тестовом классе?
namespace System.Security.Principal
{
public static class IdentityExtensions
{
public static bool HasContentPermission
(this IIdentity identity, int contentID)
{
// I do stuff here
return result;
}
}
}
И я называю это так:
bool hasPermission = User.Identity.HasPermission(contentID);
работает как шарм. Теперь я хочу, чтобы блок тестировал его. Чтобы сделать это, все, что мне нужно сделать, это вызвать метод расширения непосредственно, так:
using System.Security.Principal;
namespace MyUnitTests
{
[TestMethod]
public void HasContentPermission_PermissionRecordExists_ReturnsTrue()
{
IIdentity identity;
bool result = identity.HasContentPermission(...
, но не IntelliSense HasContentPermission
. Я попытался создать класс заглушки, который наследует от IIdentity
, но это тоже не сработало. Зачем?
Или я об этом ошибаюсь?
Ваш синтаксис в первом блоке кода неверен - вы не можете определить метод в области пространства имен ... Можете ли вы ввести свой фактический код? –
Вы уверены, что ваш тестовый проект ссылается на сборку, в которой живет ваш метод расширения (а не просто на пространство имен)? –
@Reed: Я отредактировал вопрос, чтобы добавить недостающий код. –