我正在使用 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);
}
}
非常感谢任何输入。
万千封印
相关分类