如何使用 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 的错误识别(不要忽略方法结果)

检查 FluentAssertion 异常语法中的返回值

FluentAssertion - 向 if 语句添加断言

如何检查是不是可以在 Fluent Assertion 中使用 ContainValue 验证类型类的字典