【发布时间】:2010-03-26 17:12:59
【问题描述】:
我在System.Security.Principal.IIdentity 上创建了一个名为HasContentPermission 的扩展方法:
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(...
但是HasContentPermission 不会智能感知。我尝试创建一个继承自IIdentity 的存根类,但这也不起作用。为什么?
或者我是不是走错了路?
【问题讨论】:
-
您在第一个代码块中的语法是错误的 - 您不能在命名空间范围内定义方法...您可以输入您的实际代码吗?
-
您确定您的测试项目引用了您的扩展方法所在的程序集(而不仅仅是命名空间)?
-
@Reed:我编辑了问题以添加缺少的代码。
标签: c# unit-testing extension-methods