为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Xunit 中为集合编写 Assert 语句?

如何在 Xunit 中为集合编写 Assert 语句?

C#
呼啦一阵风 2022-01-15 15:45:30
我正在使用 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 或为空,则测试将失败,否则它将按预期通过。


查看完整回答
反对 回复 2022-01-15
  • 1 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信