写单元测试在ASP.NET Web API中使用User.Identity.Name的方法

我使用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);
    }
}

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....