我正在使用ASP.NET Web API的单元测试编写测试用例.

现在我有一个操作,它调用了我在服务层中定义的某个方法,我在服务层中使用了以下代码行.

string username = User.Identity.Name;
// do something with username
// return something

现在我如何为这个创建单元测试方法,我得到了空引用异常.我对编写单元测试之类的东西有点陌生.

我只想为此使用单元测试.请帮我解决这个问题.

推荐答案

下面的方法只是一种:

public class FooController : ApiController {

    public string Get() {

        return User.Identity.Name;
    }
}

public class FooTest {

    [Fact]
    public void Foo() {

        var identity = new GenericIdentity("tugberk");
        Thread.CurrentPrincipal = new GenericPrincipal(identity, null);
        var controller = new FooController();

        Assert.Equal(controller.Get(), identity.Name);
    }
}

Asp.net相关问答推荐

从 asp.net 中的 Web.config 获取连接字符串

系统日期时间?与 System.DateTime

AppendHeader 是否与 AddHeader 完全相同?

是否可以在没有那些 .svn 文件夹的情况下从 subversion 签出文件?

jquery 1.9.0 和 modernizr 无法使用 ASP.NET Web 优化框架进行缩小

ASP.NET GridView 第二个标题行跨越主标题行

如何使用 javascript 获取 MVC 应用程序的基本 URL

没有身份的 ASP.NET Core 2.0 承载身份验证

Web Api 请求内容在操作过滤器中为空

如何解决 Kerberos 双跳问题?

为应用程序池Classic .NET AppPool提供服务的进程与 Windows 进程激活服务发生了致命的通信错误

您使用哪个 .NET Memcached 客户端,EnyimMemcached 与 BeITMemcached?

为 ASP.NET Core MVC 显示 404 Not Found 页面

如何通过 Google 图表 API 使用 X 轴中的日期?

删除 HTML 或 ASPX 扩展

ASP.NET 应用程序状态与静态对象

Azure 网站 301 重定向 - 我应该把它放在哪里?

压力测试 ASP.Net 应用程序

使用 ConfigurationManager.RefreshSection 重新加载配置而不重新启动应用程序

MVC4 - 当优化设置为 true 时Bundle 不起作用