我正在使用 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 关注
- 159 浏览
添加回答
举报
0/150
提交
取消