2016-07-14 5 views
1

Мне интересно, есть ли способ установить флаг на сервисную службу, что вы хотите только выполнить бесплатный фильтр проверки для запроса и не продолжать работать с реальным кодом?Как выполнить только код проверки запроса servicestack

В идеале вы могли бы добавить свойство любого запроса, что-то вроде

`ExecuteValidationOnly = true` 

Это было бы очень полезно для испытаний, а также для проверки форм стороны клиента.

Спасибо.

ответ

2

Там нет такой функции, встроенной в ServiceStack, но вы можете легко добавить запрос фильтр, который замыкает запрос, основанный на QueryString, например:

public class SkipRequestFeature : IPlugin 
{ 
    public void Register(IAppHost appHost) 
    { 
     appHost.GlobalRequestFilters.Add((req, res, dto) => { 
      if (req.QueryString["SkipRequest"] == "true") 
       res.EndRequestWithNoContent(); 
     }); 
    } 
} 

и зарегистрировать плагин сразу после ValidationFeature так что выполняется после проверки, например:

Plugins.Add(new ValidationFeature()); 
Plugins.Add(new SkipRequestFeature()); 
+0

безупречный. благодаря! – richardwhatever

1

в этом случае, я обычно блок проверить мой фактический AbstractValidator<T> класс тогда, когда мне нужно протестировать службу я создаю макет на валидатор и настройки вызовов проверки.

Таким образом, существует класс MyValidatorTests и класс MyServiceTests.

Смежные вопросы