簡體   English   中英

如何創建一個單元測試來驗證 Windsor 可以解決所有流利的驗證器?

[英]How can I create a unit test that verifies that all fluent validators can be resolved by Windsor?

我在我的應用程序中使用FluentValidation來驗證我的實體,但我遇到了一個小問題。 我的驗證工廠設置為通過嘗試從IValidator<EntityType>接口解析來從 Windsor 解析驗證類。

我想確保每當驗證 class 正在創建時,沒有人會忘記在 Windsor 中注冊它。

本質上,我想查看程序集中實現IValidator<EntityType>接口並調用WindsorContainer.Resolve(typeof(IValidator<EntityType>))來解析該類型的所有類,其中EntityType可以是程序集中的任何 class。 到目前為止,使用反射我已經能夠提取出從通用接口IValidator<>派生的所有類,但我不知道如何從那里繼續。 問題是我必須找到某種方法來提取泛型中使用的實際實體才能正確調用 Windsor,而我不知道如何做到這一點。

有沒有更簡單的方法來做到這一點?

我想確保每當驗證 class 正在創建時,沒有人會忘記在 Windsor 中注冊它。

你為什么做這個? 您應該有一個安裝程序,它會自動發現這些驗證類並為您注冊它們。 然后您只需要測試您是否正確編碼了安裝程序。

有人為某些TEntity添加了實現IValidator<TEntity>的 class 的事實不應該破壞您的代碼!

問題是我必須找到某種方法來提取泛型中使用的實際實體才能正確調用 Windsor,而我不知道如何做到這一點。

你想要Type.GetGenericArguments

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM