Rob*_*vey 5 c# extension-methods unit-testing
我创建了一个名为扩展方法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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我称之为:
bool hasPermission = User.Identity.HasPermission(contentID);
Run Code Online (Sandbox Code Playgroud)
奇迹般有效.现在我想对它进行单元测试.要做到这一点,我真正需要做的就是直接调用扩展方法,所以:
using System.Security.Principal;
namespace MyUnitTests
{
[TestMethod]
public void HasContentPermission_PermissionRecordExists_ReturnsTrue()
{
IIdentity identity;
bool result = identity.HasContentPermission(...
Run Code Online (Sandbox Code Playgroud)
但HasContentPermission不会智能感知.我尝试创建一个继承自的存根类IIdentity,但这也没有用.为什么?
或者我是以错误的方式来做这件事的?
tva*_*son 21
确保你有:
this在扩展类型之前using mypackage;如果您的扩展方法包含在不同的包中,则向使用扩展方法的任何源文件添加a请注意,您的示例中还有(我假设)一个拼写错误,因为该方法不在类中.
最后,我会避免将方法放入官方的.NET命名空间.对于那些想要该方法是官方支持的方法的人来说,它只会让您感到困惑,因为实际上它是您自己的并且包含在您的项目中.
| 归档时间: |
|
| 查看次数: |
10931 次 |
| 最近记录: |