ABP.IO UnitTest 讀取 appsettings.json
筆記 Module IConfiguration 讀不到 appsettings.json 的處理方式
以 Configure AddHttpClient<IClient,TImplementation> 為例
結論
MyProject.TestBase 專案內新增
appsettings.test.json並將屬性改成 內容/永遠複製MyProjectTestBaseModule.cs 加上
BuildConfiguration方法來取得configurationHttpClient 介面註冊
AddHttpClient<TClient,TImplementation>(Action<HttpClient>)統一將需要 appsettings 的服務註冊在 HttpApiHostModule,因為測試時不會用到該模組,所以不會發生例外 然後統一於 TestBaseModule 來註冊測試方法所需的服務 (使用第一點與第二點進行 appsettings 讀取)
問題
單元測試裡面並沒有 appsetting.json 相關機制 導致有些用到該設定檔的地方測試會取不到值
Typed HttpClient 官方教學不是用介面 所以要用 Interface 需要在註冊服務的時候指定
AddHttpClient<TClient,TImplementation>(Action<HttpClient>)DomainModule, EntityFrameworkCoreModule, ApplicationModule src 內的上述模組內只要用到 appsettings 都會取不到值 因此有可能會在需要該值進行設定時發生 null 例外
參考
[ .NET Core ] - 使用 Typed client 打造具有 IntelliSense 的 HttpClient | 工程良田的小球場 - 點部落 (dotblogs.com.tw)
abp/TodoDbContextFactory.cs at dev · abpframework/abp (github.com)
Accessing Configuration in .NET Core Test Projects - Rick Strahl's Web Log (west-wind.com)

PS5
HttpClinet
UnitTest
回首頁
本文章從點部落遷移至 Writerside