2013-06-20 277 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); 
    }