规格流比较设置throwAnErrorDetailingWhichItemsAreMissing

本文关键字:设置 throwAnErrorDetailingWhichItemsAreMissing 比较 | 更新日期: 2023-09-27 17:59:06

我是SpecFlow的新手,正在尝试使用与Visual studio 2015集成的SpecFlow来利用BDD模式。我有一个复合/复杂对象,所以层次结构的工作方式是例如

ResponseMessage
    ---- MessageHeaderClass ContextToken
              ----This property holds a class object which will have few string properties
    ---- SomeConcreteClass MessageBody
              ----This property holds a class object which will have few string properties

我已经写了我的场景,我想真正找到我得到的值,但我甚至还没有达到这一点,所以我想让我们试着利用ComparetoSetSpec Flow Assist助手的方法,但我得到了异常,并且在异常的消息中我只有这个

| ContextToken  | MessageBody |
    + | MessageHeaderClass | SomeConcreteClass |

我所期望的,也许我错了,ComparetoSet会将对象返回的值设置为场景中提到的属性。我在功能中也保留了相同的属性名称,正如你在下面看到的那样

Scenario: Request From invoker Response Values Check
    Given invoker invoked MethodName
    When Request get passed to MethodName get response
    Then I get back following response
    | ContextToken  | MessageBody             |
    #| MessageHeader | SomeConcreteClass |
    #| {3/1/2016 3:38:55 PM}   |  Request received successfully          |
    #| 10085103-1618744 |  |
    #| somevalue    |                  |
    #| 00000-44144-444244-1044-441         |                  |
    #| somevalue  

异常详细信息如下TechTalk.SpecFlow.Assist.SetComparer 1.ThrowAnErrorDetailingWhichItemsAreMissing(IEnumerable 1listOfMissingItems)TechTalk.SpecFlow.Assist.SetComparer 1.CompareToSet(IEnumerable 1套)在TechTalk.SpecFlow.Assistant.SetComparisonExtensionMethods.CompareToSet[T](表表,IEnumerable`1套)

规格流比较设置throwAnErrorDetailingWhichItemsAreMissing

在仔细查看了代码和异常消息后,我上周解决了这个问题,这让我发现了问题。问题是我忘了提到一个属性的getter和setter(get;set;),因此specflow对此表示不满。我正确地装饰了该属性后,问题就解决了。

希望它能帮助到别人。我一开始没有考虑这件事,因为我把其他一切都安排得很好。