【发布时间】:2017-05-25 14:09:42
【问题描述】:
我正在为 SignalR 应用程序编写模拟测试用例。我刚开始在Unit Testing SignalR Applications 的帮助下开始,但我的要求与那里显示的示例略有不同。 以下是我在谷歌搜索后完成的代码。
信号RHub
public class HubServer : Hub
{
[HubMethodName("SendNofication")]
public void GetNofication(string message)
{
try
{
Clients.Group("Manager").BroadCast(message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
单元测试
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();
}
我是单元测试应用程序的初学者,只是想确认这是否是模拟 SignalR 组的正确方法。
【问题讨论】:
-
您是否遇到任何错误或者这意味着要进行代码审查?
-
@Nkosi 没有错误,测试成功。只是为了代码审查来检查它是否是正确的模拟方式?如果不是,则需要您的帮助来纠正它。
-
我测试了您上面的代码,但没有通过。我的回答是基于您的代码不起作用这一事实。
-
在我的应用程序中使用上述代码成功通过测试。正如我告诉过你的,我是编写模拟测试用例的初学者,我只是想确认我这样做是否正确。
-
我在这里也发布了另一个单元测试组的例子,以防有任何帮助:stackoverflow.com/a/46953636/1879019
标签: c# unit-testing signalr moq