Ich schreibe Mock Testfälle für SignalR-Anwendung. Ich habe gerade mit der Hilfe von Unit Testing SignalR Applications begonnen, aber meine Anforderung ist ein wenig anders als das dort gezeigte Beispiel. Folgendes ist der Code, den ich nach dem googlen gemacht habe.Möglichkeiten, SignalR Clients.Group im Komponententest zu verharmlosen
SignalRHub
public class HubServer : Hub
{
[HubMethodName("SendNofication")]
public void GetNofication(string message)
{
try
{
Clients.Group("Manager").BroadCast(message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
Einheit Test
public interface IClientContract { }
[TestMethod]
public void GetNoficationTest()
{
var hub = new HubServer();
var mockClients = new Mock<IHubCallerConnectionContext<dynamic>>();
hub.Clients = mockClients.Object;
var all = new Mock<IClientContract>();
string message = "Message to send";
mockClients.Setup(m => m.Group("Manager")).Returns(message);
mockClients.Setup(m => m.All).Returns(all.Object);
hub.GetNofication("Mock call to SingalR hub");
all.VerifyAll();
}
Ich bin Anfänger in Unit-Test-Anwendung, möchte nur bestätigen, wenn dies der richtige Weg ist, SignalR Gruppen zu verspotten.
Erhalten Sie Fehler oder ist dies eine Code-Review mit sein soll? – Nkosi
@Nkosi Kein Fehler, Test erfolgreich bestanden. Es ist nur für Code-Review, um zu überprüfen, ob es richtig ist zu verspotten? Wenn nicht, dann brauchen Sie Ihre Hilfe, um es zu korrigieren. – Shri
Ich habe den Code, den Sie oben hatten, getestet und es ist nicht bestanden worden. Mein Antwort-Schlag beruhte auf der Tatsache, dass dein Code nicht funktionierte. – Nkosi