单元测试WebApi 2 ApiController与ExecuteAsync覆盖

时间:2015-06-02 20:45:52

标签: unit-testing testing asp.net-web-api asp.net-web-api2 ravendb

我有一个像ExecuteAsync方法覆盖的ApiController(我正在使用RavenDB,我在这里创建它的会话):

public override async Task<HttpResponseMessage> ExecuteAsync(
        HttpControllerContext controllerContext,
        CancellationToken cancellationToken)
{
    using (Session = Store.OpenAsyncSession())
    {
        var result = await base.ExecuteAsync(controllerContext, cancellationToken);
        await Session.SaveChangesAsync();
        return result;
    }
}

我想使用xUnit或Microsoft Test Framework为它编写自动化测试,目前我仍然坚持通过ExecuteAsync调用控制器操作。

我应该以任何特定的方式构造ControllerContext以完成这项工作,还是我错过了什么?

简单地创建控制器对象和调用操作会引发Session对象的NullReferenceException,这显然不是因为尚未调用ExecuteAsync而创建的。

0 个答案:

没有答案