Specflow ComparetoSet throwAnErrorDetailingWhichItemsAreMissing

Specflow ComparetoSet throwAnErrorDetailingWhichItemsAreMissing

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

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

我已经写了我的场景,我想真正找到我得到的值,但我什至没有达到那个点,所以我想让我们尝试利用 ComparetoSet Spec 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  

Exception details are as follows TechTalk.SpecFlow.Assist.SetComparer1.ThrowAnErrorDetailingWhichItemsAreMissing(IEnumerable1 listOfMissingItems) at TechTalk.SpecFlow.Assist.SetComparer1.CompareToSet(IEnumerable1 set) at TechTalk.SpecFlow.Assist.SetComparisonExtensionMethods.CompareToSet[T](Table table, IEnumerable`1 set) at

在仔细了解代码和异常消息后,我上周解决了这个问题,这让我找到了问题所在。问题是我忘了提到 属性 的 getter 和 setter (get;set;),因此 specflow 抱怨它。一旦我正确装饰 属性 问题就解决了。

希望对大家有所帮助。我最初没有考虑它,因为我得到了其他一切 运行 很好。