XUnit测试以返回是否正在返回列表

问题描述 投票:0回答:2

我正在学习单元测试,并且正在努力掌握如何测试以查看是否返回列表类型,不一定要查看列表的内容,而是要确保其返回的是列表。

返回空字符串列表

    public List<string> GetList()
    {
        var names = new List<string>();

        return names;
    }

我的测试,尝试返回typeofList:

    [Fact]
    public void GetListTest()
    {
        Assert.Equal(typeof(List<string>), GetList());
    }
c# tdd xunit
2个回答
0
投票

这里

Assert.Equal(typeof(List<string>), GetList());

您正在测试字符串列表的类型是否与实际列表相同。您正在将苹果与橙子进行比较。您可以这样做:

Assert.Equal(typeof(List<string>), GetList().GetType());

此外,您可以构造复合逻辑准则并断言等于的逻辑准则,因此您可以检查类型是否为期望的准则,并且在同一测试中为空。


0
投票

我相信这个软件包可以为您提供帮助:

https://github.com/shouldly/shouldly

有时,断言可能很难理解正在发生的事情。 Shouldly使断言更加容易。

使用Shouldly,您可以像这样进行检查类型:

yourList.ShouldBeOfType<List<string>>();

如果yourList的类型与List<string>相匹配,它将返回true。如果不是,请输入false。您也可以从nuget安装Shouldly

使用此软件包,您可以将Assert.Equal重构为类似的内容:

yourObject.yourProperty.ShouldBe("Some Stirng To Compare 'yourProperty;");
© www.soinside.com 2019 - 2024. All rights reserved.