【发布时间】:2016-05-17 09:07:41
【问题描述】:
在我的解决方案中,我添加了 TopShelf 服务。我一直在编写一些单元测试并尝试模拟隔离我为设置此服务而编写的功能所需的内容。
到目前为止,我已经模拟了HostControl 接口Start() 和Stop() 函数,但是当我运行单元测试来运行服务时,我得到一个AbnormalExit 作为TopshelfExitCode 返回。
我想知道是否有人在这方面有经验,并且可以指出我还需要模拟什么的正确方向,或者就实现我的测试要求的最佳方法提出建议。
我的测试设置目前如下所示:
ServiceControlMock = new Mock<ServiceControl>();
ServiceControlMock.Setup(m => m.Start(It.IsAny<HostControl>())).Returns(true);
ServiceControlMock.Setup(m => m.Stop(It.IsAny<HostControl>())).Returns(true);
serviceExitCode = MyStaticServiceHost.RunService(ServiceControlMock.Object);
我有以下测试:
ServiceControlMock.Verify(m => m.Start(It.IsAny<HostControl>()), Times.Once);
Assert.AreEqual(TopshelfExitCode.Ok, serviceExitCode);
提前致谢
【问题讨论】:
标签: c# unit-testing service tdd topshelf