servicestack,Testing,Continuous Integration,Moq,servicestack" /> servicestack,Testing,Continuous Integration,Moq,servicestack" />

Testing 服务堆栈和模拟,有教程吗?

Testing 服务堆栈和模拟,有教程吗?,testing,continuous-integration,moq,servicestack,Testing,Continuous Integration,Moq,servicestack,我目前正在评估ServiceStack(在.Net中创建基于rest的服务)。感兴趣的领域之一是测试方面。我的rest服务将注入许多应用程序服务(目前使用Autofac)。我需要的是一种机制来测试rest层,并在我的应用层上定义期望值(通过MOQ),所以我不是在做集成测试,而是在这个层上进行单元测试 关于如何做到这一点,你有什么想法吗?A就像任何普通的C#Service类一样,可以像任何其他类一样被嘲笑。ServiceStack服务的最小依赖性是实现无依赖性的IService接口标记,其中任何服

我目前正在评估ServiceStack(在.Net中创建基于rest的服务)。感兴趣的领域之一是测试方面。我的rest服务将注入许多应用程序服务(目前使用Autofac)。我需要的是一种机制来测试rest层,并在我的应用层上定义期望值(通过MOQ),所以我不是在做集成测试,而是在这个层上进行单元测试

关于如何做到这一点,你有什么想法吗?

A就像任何普通的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"));
var service=newtestservice{
MyDependency=new Mock().Object
};
var response=service.Get(新测试{Id=1});
Assert.That(response.Result,Is.EqualTo(“Hello,1”);

@谢谢。我想我们将为我们的新项目投入servicestack。很棒的工作。当我以这种方式模拟服务时,过滤属性似乎不会被触发,这是预期的行为吗?@CoffeeAddict令人失望的是,我们行业的人认为他们的技术过程应该盲目地强加在每个软件项目上(而不是实际产生效益的地方)尽管只有一小部分软件使用进程驱动的崇拜实践,如TDD。我们更喜欢事后测试,尤其是。在设计服务API时,我们认为这对TDD design.btw的自下而上方法没有好处,但感谢链接,它让我在设计方面思考ServiceStack的背后:)也收回了我孤立的响应。