【发布时间】:2017-01-22 02:38:38
【问题描述】:
我目前正在尝试为移动服务 .net 后端编写单元测试。
我已经使用 Effort 创建了一个模拟数据库上下文。
但我真的不知道如何初始化一个表控制器来测试它。
我尝试了这个小单元测试:
[TestClass]
public class UnitTest1
{
private MobileServiceContext _context = null;
private GroupController _controller = null;
[TestInitialize]
public void SetupTest()
{
DbConnection connection = Effort.DbConnectionFactory.CreateTransient();
_context = new MobileServiceContext(connection);
_controller = new GroupController(_context);
}
[TestMethod]
public void TestGetAll()
{
var result = _controller.GetAccessibleGroups();
}
}
GetAccessibleGroups 方法仍处于默认状态:
public class GroupController : TableController<Group>
{
//...
public IQueryable<Group> GetAccessibleGroups()
{
return Query();
}
但调用Query()时Get方法失败,出现NullReferenceException;
如何初始化控制器,以免收到 NullReferenceException?
【问题讨论】:
-
可以发
_controller.GetAccessibleGroups();的代码吗? -
当然,我将它添加到问题中。但它仍处于默认状态。
-
.NET 移动服务只是一个定制的 Web API,因此您应该能够使用如下测试技术:asp.net/web-api/overview/testing-and-debugging/…
-
即使我遇到同样的错误,当我尝试测试扩展此表控制器的控制器时
标签: c# unit-testing asp.net-web-api2 azure-mobile-services