小编Gat*_*man的帖子

使用 HubContext 进行单元测试 .net core 2.2 SignalR hub 问题

我有一个 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)

moq xunit signalr-hub asp.net-core

3
推荐指数
1
解决办法
5277
查看次数

标签 统计

asp.net-core ×1

moq ×1

signalr-hub ×1

xunit ×1