如何使用 FluentAssertion 测试一个对象是否等效于另一个已经设置了属性 solidcolorbrush 的



我有一个使用FluentAssertions的单元测试,我想测试一个等效的对象。

[TestFixture]
public class TaskCompletionTest
{
private string _callId;
private List<Step> _steps;
private SolidColorBrush _solidColor;
[SetUp]
public void ReInitializeTest()
{
_callId = _faker.Name.FullName();
_steps = new List<Step> { new Step { Name = "Step1" }, new Step { Name = "Step2" } };
_solidColor = new SolidColorBrush(Color.FromRgb(0, 0, 0)); 
}
[Test]
public void ShouldCreateTaskCompletion()
{
//Arrange
var taskCompletion = new TaskCompletionwModel(_callId, _steps);
//Acts
var taskCompletionExpected = new
{
CallId = _callId,
Steps = _steps,
StatusColor = _solidColor
};
//Assert
taskCompletionExpected.Should().BeEquivalentTo(taskCompletion);
}
}       

public class Step
{
public string Name { get; set; }
}
public class TaskCompletionwModel
{
public string CallId { get; private set; }
public List<Step> Steps { get; private set; }
public SolidColorBrush StatusColor { get; set; } = new SolidColorBrush(Color.FromRgb(0, 0, 0));

public TaskCompletionwModel(string callId, List<Step> steps)
{
CallId = callId;
Steps = steps;
}
}

当我运行测试时,我有这个。 预期成员状态颜色 #FF000000,但发现 #FF000000。

使用配置: - 使用声明的类型和成员 - 按值比较枚举 - 按名称匹配成员(或投掷( - 没有自动转换。 - 严格控制字节数组中项目的顺序

为什么这个测试不起作用?

此致敬意。 乔利尼斯

您好,我发现了问题,我需要转换 SolidColorBrush 的类型。

var taskCompletionExpected = new
{
CallId = _callId,
Steps = _steps,
StatusColor = (SolidColorBrush) _solidColor,
};

此致敬意。

最新更新