2013-06-20 227 views
3

当我使用ServiceStack创建服务时,只需实例化该类并运行我的单元测试,他们可以轻松测试。使用FluentValidation进行单元测试ServiceStack

但是使用这种方法,验证器不会触发,因为运行时会绑定它们,并且在调用serivce之前它们是triggert。

我是否需要使用正在运行的服务进行IntegrationTests?或者有更聪明的方法吗?

回答

3

这取决于你想要测试的是什么。 您可以为您的验证器类传递不同的DTO请求对象进行测试。 您也可以通过从TestBase继承您的测试夹具进行集成测试。

9

我们这样做:单元测试实际的验证器,然后再进行全集成测试 - 因此我们可以测试整个过滤器管线。

我们的单元测试看起来有些东西一样:

[Test] 
    public void Validate_POST_ValidRequest_ExpectIsValidTrue() 
    { 
     var request = new MyRequest { Id =99, Name = "fr", Venue = "My Venue", Age = 9 }; 

     var validateRunner = new MyValidator(); 
     var result = validateRunner.Validate(request, ruleSet: "POST"); 

     Assert.That(result.IsValid, Is.True); 
    }