使用Autofac.Extras.Moq进行XUnit测试

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

我是单元测试的新手,以下是使用xunit进行单元测试的代码

public class FloorManager
{
    public List<FloorInfo> Floors { get; }

    public FloorManager()
    {
        Floors = new List<FloorInfo>();
        SelectedFloor = -1;
    }        

    public FloorInfo FindFloorByName(string name)
    {
        FloorInfo fInfo = Floors.Find(floor => floor.Name == name);
        return fInfo;
    }
}

public class FloorInfo
{
    public String Name { get; set; }
}

我对此进行了测试:

[Fact]
public void FindFloorByName_ShouldGetName()
{
    using (var mock = AutoMock.GetLoose())
    {
        string floorName = "First Floor";
        var fInfo = new FloorInfo { Name = floorName };
        mock.Mock<FloorManager>()
            .Setup(x => x.FindFloorByName(floorName)).Returns(fInfo);

        var cls = mock.Create<FloorManager>();
        var expected = "First Floor";

        var actual = cls.FindFloorByName(floorName);

        Assert.True(expected == actual.Name);
    }
}

但是当我运行测试时,它给我错误:-

> `System.NotSupportedException : Unsupported expression: x => x.FindFloorByName(FloorManagerTests.<>c__DisplayClass0_0.floorName)`

请给我解决方案如何测试上述功能以通过测试用例

c# unit-testing xunit xunit.net xunit2
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.