2
我正在为WebAPI控制器编写一些单元测试,并且我想断言的其中一个方面是参数匹配。WebAPI中的单元测试操作参数
我遵循Filip Wojcieszyn's blog中使用的方法,它工作正常,但我现在想要扩展它的断言。
我有三个动作控制器(其中三个已通过实际使用验证):
[HttpGet]
public IEnumerable<Task> Get()
[HttpGet]
public IEnumerable<Task> Get(string elementType)
[HttpGet]
public Task Get(long id)
和我有下面的代码
var actionSelector = new ApiControllerActionSelector();
var descriptor = actionSelector.SelectAction(_controllerContext);
return descriptor.GetParameters();
的问题是,当我在无参数路由上调用descriptor.GetParameters()它返回一个包含1个参数的集合 - “long id”参数。
任何人都可以解释为什么它只返回这个和其他两个重载,如果有可能获得超载的可能性?
这正是发生在我身上的事情。 – Skadoosh
您是否在默认路线之前或之后放置了该路线?我有2个测试,一个命中Get(),另一个命中Get(id)。如果我在默认路由之前放置路由,则第二次测试失败。如果我在默认路由后放置路由,则第一个测试失败。 – Skadoosh
您的默认路线应该是最后一个路线,因为默认路线应该是最一般的路线。 – awj