asp.net-web-api – 在ASP.NET Web API控制器的nunit测试中实例化新的System.We
|
我有一个ASP.NET MVC4 Web API项目与ApiController继承的控制器接受一个ODataQueryOptions参数作为其输入之一. 我正在使用NUnit和Moq来测试该项目,这使我能够从ApiController使用的相关的存储库方法中设置canned响应.这样做,如: [TestFixture]
public class ProjectControllerTests
{
[Test]
public async Task GetById()
{
var repo = new Mock<IManagementQuery>();
repo.Setup(a => a.GetProjectById(2)).Returns(Task.FromResult<Project>(new Project()
{
ProjectID = 2,ProjectName = "Test project",ProjectClient = 3
}));
var controller = new ProjectController(repo.Object);
var response = await controller.Get(2);
Assert.AreEqual(response.id,2);
Assert.AreEqual(response.name,"Test project");
Assert.AreEqual(response.clientId,3);
}
}
我所面临的挑战是,要使用这种模式,我需要将相关的querystring参数传递给控制器以及存储库(这实际上是我的意图).然而,在使用ODataQueryOptions接受ApiController方法的情况下,即使在我想仅使用ODataQueryOptions的默认参数的情况下,我需要知道如何实例化一个.这变得棘手: > ODataQueryOptions不实现接口,所以我不能直接模拟它. 我需要做什么/有更好的方法吗? 谢谢. 解决方法看来,其他人在 here的评论中已经回答了这个问题,但这不是我的用例的完整解决方案(见下面的评论):ODataModelBuilder modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<Customer>("Customers");
var opts = new ODataQueryOptions<Customer>(new ODataQueryContext(modelBuilder.GetEdmModel(),typeof(Customer)),request); (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Application_error函数间歇性捕获“文件不存在”
- 在ASP.net中使用NVP API时,PayPal SetExpressCheckout存在问
- asp.net-mvc – 如何将ASP.Net MVC路径段中的1或0映射到布尔
- asp.net实现access数据库分页的方法
- 用ADO.NET处理层次数据
- asp.net – 在IHTTPHandler中以编程方式创建System.Web.UI.
- 从ASP.NET应用程序使用Active Directory时,DirectoryServic
- asp.net – Oracle.ManagedDataAccess:TNS:无法解析指定的
- 如何排序. .NET中的resx(资源文件)
- asp.net-mvc – 你如何指定在列表框中显示多少项目(高度)
