我有以下 appsettings.json 配置。
"SettingsConfig": [
{
"Name": "Something",
"Node": "Something",
"SettingName": "Something"
},
{
"Name": "Something",
"Node": "Something",
"SettingName": "Something"
}]
我想寫 UnitTest ,但下面的語法不起作用。
_configuration = A.Fake<IConfiguration>();
A.CallTo(() => _configuration.GetSection("SettingsConfig")).Returns(new List<SettingsConfig>());
錯誤訊息:IConfigurationSection 不包含 Returns 的定義。
如何使用 FakeItEasy 語法模擬 IConfiguration 以便為 UnitTesting 應用模擬資料?
uj5u.com熱心網友回復:
首先,您應該實作從檔案中讀取的方法,該方法存在于單元測驗的專案中。因此,如果沒有檔案 .json 可以從中讀取,則根本無法獲取 GetSection。所以在那里添加檔案然后應用:
private IConfiguration ApplyConfiguration()
{
var configurationBuilder = new ConfigurationBuilder();
configurationBuilder.AddJsonFile("settingsConfig.json");
var config = configurationBuilder.Build();
config.GetSection("settingsConfig").Get<List<SettingsConfig>>();
return config;
}
然后在您的業務邏輯中添加:
var config = ApplyConfiguration();
您將看到 config 包含那里的所有配置,因此根本不需要呼叫 OnCall .Returns()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/408839.html
標籤:
