【发布时间】:2018-08-02 04:48:01
【问题描述】:
在 ASP.NET Core 2.1 中,ViewComponents 与部分页面相比的一大广告优势是它们非常容易测试。我在文档中找不到任何关于如何实际测试的示例。
我的 ViewComponent 在其构造函数中采用 IConfiguration,因此我可以注入 AppSetting 值。它使用 Invoke 传入的几个参数执行。我假设我想以某种方式测试返回到视图的模型并确保它是我所期望的(基于 AppSettings 和这两个参数)。
[编辑] 这是一个简单的 ViewComponent 示例,它使用配置服务并将参数传递给调用。
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
namespace WebApp.Pages.Components.RatingControl
{
public class MyModel
{
public string MyVal1 { get; set; }
public string MyVal2 { get; set; }
}
public class MyViewData
{
public MyModel MyModel { get; set; }
public string Param1 { get; set; }
}
public class SimpleViewComponent : ViewComponent
{
private readonly MyModel _myModel;
public SimpleViewComponent(IConfiguration config)
{
_myModel = new MyModel
{
MyVal1 = config["myVal1"],
MyVal2 = config["myVal2"],
};
}
public IViewComponentResult Invoke(string param1)
{
var myViewData = new MyViewData
{
MyModel = _myModel,
Param1 = param1
};
return View(myViewData);
}
}
}
也许这很明显,但我有点迷路了。
【问题讨论】:
-
在minimal reproducible example中提供您要测试的组件的示例以及到目前为止您如何尝试测试它
-
sour repo 将测试您可以用作示例,但它们将针对组件的特定功能。 github.com/aspnet/Mvc/blob/…
-
嗨@Nkosi,感谢您的示例,但我看不到将配置(IConfiguration)作为显示列表中测试的一部分传递到视图组件的方法。
标签: razor asp.net-core asp.net-core-viewcomponent