我有一个 SignalR 集线器,我希望对其进行单元测试。该集线器非常简单,只是它在构造函数中包含一个 IHubContext 参数。我遇到的问题是,任何对 UpdateData 方法进行单元测试以便我可以验证 DataModel 数据属性是否已更新的尝试都会因空引用异常而失败。到目前为止,我只能验证该方法是否被调用。是不是我没有正确模拟 HubContext 依赖项?
任何人都可以提供如何解决此问题的详细信息吗?
using Microsoft.AspNetCore.SignalR;
using Moq;
using System.Threading;
using System.Threading.Tasks;
using Xunit;
namespace Tests
{
public class DataModel
{
public string Name { get; set; }
public string Job { get; set; }
}
public class DataHub : Hub
{
private readonly IHubContext<DataHub> _hubContext;
private DataModel data;
public DataHub(IHubContext<DataHub> context)
{
_hubContext = context;
}
public override async Task OnConnectedAsync()
{
await Groups.AddToGroupAsync(Context.ConnectionId, "DataGroup");
}
public void UpdateData(DataModel update)
{ …Run Code Online (Sandbox Code Playgroud)