我有一个控制器,它在构造函数中注入了一个IHubContext<T>
对象。我想对向组中添加和从组中删除connectionId
进行单元测试。我在问我该怎么做?我试过这个:
public interface IMyHubContext :IHubContext<MyHub>
{
Task AddToGroupAsync(string connectionId, string groupName, CancellationToken cancellationToken = default);
Task RemoveFromGroupAsync(string connectionId, string groupName, CancellationToken cancellationToken = default);
}
var cs = new CancellationTokenSource();
var ct = cs.Token;
Mock<IMyHubContext> hubMoq = new Mock<IMyHubContext>();
hubMoq.Setup(a => a.RemoveFromGroupAsync("123", $"{groupName}", ct)).Returns(null);
但这会产生编译时错误。
编译时错误可能是由于将null
传递给Returns
而产生的。由于RemoveFromGroupAsync
返回类型是Task
,我认为您需要将此调用设置如下:
hubMoq.Setup(a => a.RemoveFromGroupAsync("123", $"{groupName}", ct))
.Returns(Task.CompletedTask);