我目前正在评估 ServiceStack(在 .Net 中创建基于休息的服务)。感兴趣的领域之一是测试方面。我的休息服务将注入一些应用服务(目前使用 Autofac)。我需要的是一种机制来测试其余层并在我的应用层上定义期望(通过 MOQ),所以我不是在做集成测试而是对这一层进行单元测试?
关于如何做到这一点的任何想法?
我目前正在评估 ServiceStack(在 .Net 中创建基于休息的服务)。感兴趣的领域之一是测试方面。我的休息服务将注入一些应用服务(目前使用 Autofac)。我需要的是一种机制来测试其余层并在我的应用层上定义期望(通过 MOQ),所以我不是在做集成测试而是对这一层进行单元测试?
关于如何做到这一点的任何想法?
ServiceStack Service就像任何普通的 C# Service 类一样,可以像任何其他类一样以完全相同的方式进行模拟。ServiceStack 服务的最小依赖是实现无依赖IService
接口标记,并且任何服务只接受请求 DTO 并返回任何对象。
对 ServiceStack 服务进行单元测试的一种方法是使用本示例中所示的 DirectServiceClient,这样做的好处是它允许您使用相同的单元测试作为集成测试 - 测试所有不同的 XML、JSON、JSV 和 SOAP 端点。
否则,您可以像任何其他类一样对它进行单元测试和模拟,例如:
var service = new TestService {
MyDependency = new Mock<IMyDependency>().Object
};
var response = service.Get(new Test { Id = 1 });
Assert.That(response.Result, Is.EqualTo("Hello, 1"));