Я использую тестовый фреймворк xUnit для написания некоторого модульного теста. Ниже приведен фрагмент кода, который проверяет, является ли коллекция azColumns
пустой или нет. Тем не менее, я подумал, есть ли лучший способ утверждать коллекцию azColumns
без использования двух Assert
внутри оператора if..else
block?
Может быть, в одном выражении 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);
}
}
Любые отзывы приветствуются.