我想知道是否有一種方法可以標記爲服務堆,即您只希望爲請求執行流暢的驗證過濾器,而不是繼續運行真實的代碼?如何僅執行服務堆請求驗證代碼
理想情況下,你可以將屬性添加到任何要求,像
`ExecuteValidationOnly = true`
這對於測試非常有用,以及驗證表單客戶端。
謝謝。
我想知道是否有一種方法可以標記爲服務堆,即您只希望爲請求執行流暢的驗證過濾器,而不是繼續運行真實的代碼?如何僅執行服務堆請求驗證代碼
理想情況下,你可以將屬性添加到任何要求,像
`ExecuteValidationOnly = true`
這對於測試非常有用,以及驗證表單客戶端。
謝謝。
有內置ServiceStack沒有這樣的功能,但你可以很容易地添加短路請求,基於查詢字符串請求過濾器,例如:剛剛ValidationFeature後
public class SkipRequestFeature : IPlugin
{
public void Register(IAppHost appHost)
{
appHost.GlobalRequestFilters.Add((req, res, dto) => {
if (req.QueryString["SkipRequest"] == "true")
res.EndRequestWithNoContent();
});
}
}
並註冊插件,所以它的經過驗證,如執行:
Plugins.Add(new ValidationFeature());
Plugins.Add(new SkipRequestFeature());
對於這種情況,我通常單元測試我的實際AbstractValidator<T>
類,然後當我需要測試我創建了驗證,並設置驗證呼叫模擬服務。
所以有一個MyValidatorTests
類和一個MyServiceTests
類。
完美。謝謝! – richardwhatever