2012-07-29 79 views
3

我在ServiceStack TestHostBase.cs中查看单元测试的源代码 - 并使用我自己的项目运行它。 如何在没有真正启动侦听器的情况下单元测试时启用我的插件? 例如,我想测试我的Web服务是否正确验证,因此我将以下代码添加到TestHostBase.cs中的Configure中。在ServiceStack中测试插件

Plugins.Add(new ValidationFeature()); 
container.RegisterValidators(typeof(CustomerModelValidator).Assembly); 

但是,当调用base.send与违反验证规则的Customer对象时,不会进行验证。 (注意:验证工作正常,当我开始我的webservice与听众)

回答

2

因为插件可以突变AppHost的任何部分(即添加路由,ContentTypes,请求/响应过滤器,CatchAll处理程序等)。如果不启动HttpListener(或ASP.NET主机),则无法测试其与服务的集成。

当然,如果你的插件是可测试的,你可以单独测试它,与服务分开。