如何使用 FluentAssertion 测试一个对象是不是等同于另一个已设置属性 solidcolorbrush 的对象
Posted
技术标签:
【中文标题】如何使用 FluentAssertion 测试一个对象是不是等同于另一个已设置属性 solidcolorbrush 的对象【英文标题】:Howto test with FluentAssertion if an object is equivalent to another with a property solidcolorbrush already set如何使用 FluentAssertion 测试一个对象是否等同于另一个已设置属性 solidcolorbrush 的对象 【发布时间】:2019-03-11 06:40:57 【问题描述】:我有一个使用 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;
当我运行测试时,我有这个。 预期成员 StatusColor 为 #FF000000,但发现为 #FF000000。
配置: - 使用声明的类型和成员 - 按值比较枚举 - 按名称匹配成员(或抛出) - 没有自动转换。 - 严格字节数组中的项目顺序
为什么这个测试不起作用?
最好的问候。 乔莉妮丝
【问题讨论】:
【参考方案1】:您好,我发现了问题,我需要转换 SolidColorBrush 的类型。
var taskCompletionExpected = new
CallId = _callId,
Steps = _steps,
StatusColor = (SolidColorBrush) _solidColor,
;
完成,
最好的问候。
【讨论】:
以上是关于如何使用 FluentAssertion 测试一个对象是不是等同于另一个已设置属性 solidcolorbrush 的对象的主要内容,如果未能解决你的问题,请参考以下文章
FluentAssertion : 用私有内部对象列表断言对象相等
如何使用 FluentAssertion 编写 CustomAssertion?
使用 FluentAssertion 时 Visual Studio 警告 CA1806 的错误识别(不要忽略方法结果)