【发布时间】:2018-08-18 00:27:33
【问题描述】:
我有一个简单的集线器,我正在尝试使用 FakeItEasy 编写一个测试,并且调用客户端的验证没有通过。我有一个在使用 MOQ 和 XUnit 的单独项目中工作的示例。
public interface IScheduleHubClientContract
{
void UpdateToCheckedIn(string id);
}
public void UpdateToCheckedIn_Should_Broadcast_Id()
{
var hub = new ScheduleHub();
var clients = A.Fake<IHubCallerConnectionContext<dynamic>>();
var all = A.Fake<IScheduleHubClientContract>();
var id= "123456789";
hub.Clients = clients;
A.CallTo(() => all.UpdateToCheckedIn(A<string>.Ignored)).MustHaveHappened();
A.CallTo(() => clients.All).Returns(all);
hub.UpdateToCheckedIn(id);
}
我使用 Fixie 作为单元测试框架,它报告:
FakeItEasy.ExpectationException:
预计会找到一次或多次,但没有调用假对象。
以下示例适用于 XUnit 和 MOQ:
public interface IScheduleClientContract
{
void UpdateToCheckedIn(string id);
}
[Fact]
public void UpdateToCheckedIn_Should_Broadcast_Id()
{
var hub = new ScheduleHub();
var clients = new Mock<IHubCallerConnectionContext<dynamic>>();
var all = new Mock<IScheduleClientContract>();
hub.Clients = clients.Object;
all.Setup(m=>m.UpdateToCheckedIn(It.IsAny<string>())).Verifiable();
clients.Setup(m => m.All).Returns(all.Object);
hub.UpdateToCheckedIn("id");
all.VerifyAll();
}
我不确定我在转换中遗漏了什么?
【问题讨论】:
标签: c# asp.net-mvc unit-testing signalr fakeiteasy