Xunit-检查方法List <p>的返回值

时间:2019-03-18 11:56:56

标签: c# .net entity-framework unit-testing xunit

我是Xunit的新手,我试图对创建的解决方案进行简单的Xunit测试,我有此方法:

public List<Countries> GetCountriesValues()
{
    List<Countries> countries = new List<Countries>();

    using (var context = new CountriesDBEntities())
    {
        if (context != null && 
            context.Countries != null && 
            context.Countries.Count() > 0)
        {
            foreach (Countries c in context.Countries)
            {
                countries.Add(c);
            }
        }
    }
    return countries;
}

我正在尝试做一个Xunit测试用例,以验证返回的值是否不为null, 但是以某种方式Assert NotNull没有通过,我该怎么办?

[TestMethod()]
public void GetCountriesValues_TestCountriesReturn()
{
    var actual = mcTest.GetCountriesValues();
    Xunit.Assert.NotNull(actual);
}

1 个答案:

答案 0 :(得分:2)

如其他评论所述,如果不满足任何条件,您将返回一个空列表,而不是空列表。

因此,您可以使用 Assert.NotEmpty

更改测试,以检查是否为空集合而不是null。
[Fact()]
public void GetCountriesValues_TestCountriesReturn()
{
    var actual = mcTest.GetCountriesValues();
    Xunit.Assert.NotEmpty(actual);
}