Мой вопрос касается вызова концентратора, который реализует Концентратор с параметром типа, Концентратором, в проекте модульного тестирования, который будет имитировать вызовы Клиента и т. Д. Один из моих концентраторов выглядит следующим образом.
namespace Hubs {
private readonly ILogger<CarHub> _logger;
public class CarHub : Hub<ICar> {
public CarHub(ILogger<CarHub> logger) {
_logger = logger;
}
public async Task SendForCarName(string carBrand) {
await Clients.All.GetCarName(carBrand.Equals("Toyota") ? "Camry"
:"Accord);
}
}
}
Пока что попытка моего юнит-тестирования выглядит так:
public class Tests
{
[Test]
public void Test1()
{
Mock<IHubCallerClients<ICar>> mockClients = new Mock<IHubCallerClients<ICar>>();
Mock<IClientProxy> mockClientProxy = new Mock<IClientProxy>();
mockClients.Setup(clients =>
clients.All).Returns(mockClientProxy.Object);
CarHub carHub = new CarHub(new Mock<ILogger<CarHub>>
().Object) {
Clients = mockClients.Object
};
Assert.Pass();
}
}
Теперь вопросы
1) Правильно ли использовать / вызывать использование Mock IHubCaller ICar? или это должно быть изменено на IHubCaller Car?
2) mockClients.Setup (clients => clients.All) .Returns (mockClientProxy.Object) отображает ошибку «Не удается разрешить метод Returns (...... SignalR.ClientProxy) кандидатами являются Returns (Interfaces.ICar ), Возвращает (Systems.Delegate), возвращает (System.Func ICar). Что я делаю неправильно?