所以我有一个控制器“ItemsController”,我必须在NUnit中创建一个单元测试用例。
但我不知道如何使它工作,因为它扩展了只有get方法而没有setter的Base Controller,因此我运行的任何测试都会抛出错误,因为“Container”为null。我无法创建Set方法,因为它通常从URL获取值。
如何在可能的情况下将URL传递给我的测试用例?如何确保URL被正确模拟?或者有没有人有更好的方法/建议?
public class BaseController : Controller
{
protected string Container
{
get
{
var cont = this.RouteData.Values["container"] as string;
return cont;
}
}
}
public class ItemsController : BaseController
{
private IItemsServiceRepository _esc;
public ItemsController(IItemsServiceRepository esc)
{
_esc = esc;
}
[HttpGet]
public IActionResult GetItems()
{
var items = _esc.GetItems(Container);
var results = new List<ItemDb>();
foreach (var item in items)
{
results.Add(new ItemDb
{
Title = item.Title,
Type = "TBD",
Uri = "TBD"
});
}
return Ok(results);
}
}
我会告诉你我的单元测试,但现在一切都搞乱了。
如果您需要任何其他信息,请与我们联系。
注意:有谁能告诉我这是怎么回事? 到目前为止,我被认为是重复的那个链接根本没有帮助。由于我是TDD的新手,所以有一些解释是首选。