我是单元测试的新手,以下是使用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)`
请给我解决方案如何测试上述功能以通过测试用例