當前位置:
首頁 >
在UnitTest中读取*.config文件的郁闷
發布時間:2023/12/10
37
豆豆
生活随笔
收集整理的這篇文章主要介紹了
在UnitTest中读取*.config文件的郁闷
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- -Visual Stuido 2005集成了Unit Test功能后,創建和管理Unit Test變得比原來簡單多了,并且獨立項目的Unit Test模塊和代碼不會再"殘留"于我們的dll中。不過VS 2005 Unit Test運行方法的原理和其他的Unit Test框架一樣,也是使用反射來實現的,這樣就會造成代碼中一些依賴于運行環境的參數獲取不到。
??? 剛才做了一個方法的Unit Test,該方法依賴于Web.confing里面的一個定制參數,于是郁悶就來了。當我運行測試代碼時,發現那個Config里面配置參數總是為null。本來這個問題應該一點都不復雜,可是當我查看程序編譯時的輸出信息時,發現如下的一個Warning: 'System.Configuration.ConfigurationSettings.AppSettings'?is?obsolete:?'This?method?is?obsolete,?it?has?been?replaced?by?System.Configuration!System.Configuration.ConfigurationManager.AppSettings'
??? 本來還有點清醒的我被這個Warning搞糊涂了,還以為是舊的方法出了什么問題被廢棄,結果把本來簡單的問題想的越來越復雜:(。于是按編譯提示把ConfigurationSettings改成了ConfigurationManager,顯然這是徒勞的,問題依舊,還是無法取到Config文件里的參數值。
??? 在ConfigurationSettings和ConfigurationManager間又倒騰了半天,仍然是毫無起色。在郁悶了很久之后,突然醍醐灌頂想到,config文件是一個應用的全局配置,應該在應用本身正常啟動后才能被載入生效。由于Unit Test使用反射的方式載入assembly和class,再Invoke被測試的方法,這樣一來本身的應用沒有被正常的啟動,config信息當然也就無從獲取。于是馬上啟動應用本身,果然就取到了config文件中配置的參數。
??? 所以在做Unit Test的時候,需要注意被測試的方法是否依賴了config文件中的參數,如果有需要暫時使用hardcode的常量來代替,再進行我們的Unit Test測試,否則就只有自個郁悶去吧。
??? 以上問題出現在ASP.NET項目中對Web.config文件的讀取,至于WinForm程序的*.config文件想來也該有這個問題,不過還沒有親自去驗證。
??? 剛才做了一個方法的Unit Test,該方法依賴于Web.confing里面的一個定制參數,于是郁悶就來了。當我運行測試代碼時,發現那個Config里面配置參數總是為null。本來這個問題應該一點都不復雜,可是當我查看程序編譯時的輸出信息時,發現如下的一個Warning: 'System.Configuration.ConfigurationSettings.AppSettings'?is?obsolete:?'This?method?is?obsolete,?it?has?been?replaced?by?System.Configuration!System.Configuration.ConfigurationManager.AppSettings'
??? 本來還有點清醒的我被這個Warning搞糊涂了,還以為是舊的方法出了什么問題被廢棄,結果把本來簡單的問題想的越來越復雜:(。于是按編譯提示把ConfigurationSettings改成了ConfigurationManager,顯然這是徒勞的,問題依舊,還是無法取到Config文件里的參數值。
??? 在ConfigurationSettings和ConfigurationManager間又倒騰了半天,仍然是毫無起色。在郁悶了很久之后,突然醍醐灌頂想到,config文件是一個應用的全局配置,應該在應用本身正常啟動后才能被載入生效。由于Unit Test使用反射的方式載入assembly和class,再Invoke被測試的方法,這樣一來本身的應用沒有被正常的啟動,config信息當然也就無從獲取。于是馬上啟動應用本身,果然就取到了config文件中配置的參數。
??? 所以在做Unit Test的時候,需要注意被測試的方法是否依賴了config文件中的參數,如果有需要暫時使用hardcode的常量來代替,再進行我們的Unit Test測試,否則就只有自個郁悶去吧。
??? 以上問題出現在ASP.NET項目中對Web.config文件的讀取,至于WinForm程序的*.config文件想來也該有這個問題,不過還沒有親自去驗證。
轉載于:https://www.cnblogs.com/birdshome/archive/2006/03/16/UnitTest2005.html
總結
以上是生活随笔為你收集整理的在UnitTest中读取*.config文件的郁闷的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Redis开发与运维》读书笔记三
- 下一篇: 模仿块级作用域