2016-12-15 139 views
1

我試圖單元測試依賴注入。顯然,這些東西將通過良好的功能測試或質量保證進行測試,但我認爲可以(並且更好)對其進行更快速的測試。事情是,我們的一些構造函數會執行一些功能,比如在數據庫或文件系統中查找配置值,有時還會注入依賴項。然後我們註冊的一些單身人士會做同樣的事情。單元測試依賴注入而不實際解析實例

我們的代碼只有使用構造函數注入,而不是方法或屬性注入。這讓我認爲我們可以驗證一個類型是否可以通過僅依賴Autofac選擇的依賴項和構造函數樹來構建,但從來沒有真正構建過類型。

這實質上是我的問題。有沒有人在這裏劫持Autofac的激活碼,實際上並不是激活類型,但只是驗證它可能

+1

問題是,並非所有的東西都被反射激活。對於註冊爲lambdas的東西,執行該分析(將lambda運行?)並不像剛剛運行依賴關係樹那樣簡單。 –

回答

2

我們的一些構造函數會執行一些功能,比如在數據庫或文件系統中查找配置值,有時會注入依賴項。

這是您的問題的根源。正如清楚地說明here,注射構造應該是簡單的。任何初始化都應該在圖形生成之後或之前完成。特別是查看配置值是類別不應該關注的問題。組合根應該加載這些值並將它們注入需要它們的類中。

在將配置值加載到類之外的責任之後,測試這樣的類變得更加容易。