XUnit 测试 return 查看列表是否被 returned

XUnit test to return a see if a list is being returned

我正在学习单元测试,我正在努力掌握如何测试某种类型的列表是否 returning,不一定是列表的内容,但要确保它是正在 returned.

的 LIST

返回空字符串列表

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

        return names;
    }

我的测试,试图return一个typeofList:

    [Fact]
    public void GetListTest()
    {
        Assert.Equal(typeof(List<string>), GetList());
    }

这里

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

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

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

此外,您还可以构造复合逻辑条件并断言等于这些条件,因此您可以在同一测试中检查类型是否为预期类型和空类型。

我相信这个包可以帮助你:

https://github.com/shouldly/shouldly

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

使用 Shouldly 你可以像这样检查类型:

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

如果 yourList 的类型匹配 List<string>,它将 return true。如果没有,false。您也可以从 nuget 安装 Shouldly

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

yourObject.yourProperty.ShouldBe("Some Stirng To Compare 'yourProperty;");

和 int 示例:

yourInteger.ShouldBe(10);