我正在使用 xUnit 測試框架來編寫一些單元測試。下面是一個測試azColumns集合是否為空的代碼片段。但是,我在想有沒有更好的方法來斷言azColumns集合而不Assert在if..else塊語句中使用兩個?Assert也許是一個有意義的單行語句?private static string LoadJsonFile(){ const string fileName = "templateFileContent_1.json"; var filePath = Path.Combine(Directory.GetCurrentDirectory(), $@"Data\{fileName}"); return !File.Exists(filePath) ? string.Empty : filePath;}private static string GetJsonData(){ JObject jsonObject; var jsonFile = LoadJsonFile(); if (string.IsNullOrEmpty(jsonFile)) return string.Empty; using (var reader = new StreamReader(jsonFile)) { var jsonData = reader.ReadToEnd(); jsonObject = JObject.Parse(jsonData); } return jsonObject.ToString();}private static JObject GetBaseConfigurationObject(){ var json = GetJsonData(); if (string.IsNullOrEmpty(json)) return null; var baseObject = JsonConvert.DeserializeObject<JObject>(json); return baseObject;}[Fact]public void ExportColumns_Should_Not_Be_Empty_Or_Null(){ // Arrange IEnumerable<az_Columns> azColumns = null; // Act var baseConfig = GetBaseConfigurationObject(); var fileContent = baseConfig?["templateFileContent"]; if (fileContent != null) { var baseConfiguration = fileContent.ToObject<BaseConfiguration>(); azColumns = baseConfiguration?.ExportData?.az_Columns; } // Assert if (azColumns == null) { Assert.Null(azColumns); } else { Assert.NotEmpty(azColumns); }}非常感謝任何輸入。
1 回答

萬千封印
TA貢獻1891條經驗 獲得超3個贊
如果對使用Fluent Assertions感興趣,您可以斷言如下
[Fact]
public void ExportColumns_Should_Not_Be_Empty_Or_Null() {
//Arrange
//...omitted for brevity
//Act
//..omitted for brevity
//Assert
azColumns.Should().NotBeNullOrEmpty();
}
執行測試后,您斷言該集合不應為空或為空。如果它為 null 或為空,則測試將失敗,否則它將按預期通過。
- 1 回答
- 0 關注
- 179 瀏覽
添加回答
舉報
0/150
提交
取消