2016-07-28 45 views
1

Ich bin neu in SpecFlow und versuchen BDD Muster zu verwenden SpecFlow mit integriert mit Visual Studio 2015 Ich habe einen Composite/komplexes Objekt so auf diese Weise Hierarchie arbeitet zum Beispiel istSpecflow ComparetoSet throwAnErrorDetailingWhichItemsAreMissing

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 

Ich habe geschrieben mein Szenario und ich möchte tatsächlich die Werte finden, die ich bekomme, aber ich bin nicht sogar erreichen, so dass ich dachte, lassen Sie uns versuchen, competetoSet Methode der Spec Flow Assist Helfer zu verwenden, aber ich bekomme Ausnahme und in der Nachricht der Ausnahme Alles, was ich bekam, war

| ContextToken | MessageBody | 
    + | MessageHeaderClass | SomeConcreteClass | 

Was ich erwartet habe, und ich vielleicht falsch, dass CompromtoSet wird die Werte aus dem Objekt auf die Eigenschaften im Szenario genannten gesetzt. Auch ich habe die gleichen Eigenschaften Name in Funktion gehalten, wie Sie unten

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 

Ausnahmedetails sehen können, sind wie folgt TechTalk.SpecFlow.Assist.SetComparer listOfMissingItems) bei TechTalk.SpecFlow.Assist. SetComparer 1.CompareToSet(IEnumerable 1 Satz) bei TechTalk.SpecFlow.Assist.SetComparisonExtensionMethods.CompareToSet [T] (Tabelle Tabelle IEnumerable`1 set) bei

Antwort

0

Ich habe diese letzte Woche nach einem sorgfältigen Einblick in den Code und die Ausnahmebedingungsnachricht gelöst, die mich dazu brachten, das Problem herauszufinden. Das Problem war, dass ich vergaß, den Getter und Setter einer Eigenschaft zu erwähnen, und daher beschwerte sich specflow darüber. Sobald ich das Objekt richtig eingerichtet habe, wurde das Problem gelöst.

Ich hoffe, es wird jemandem helfen. Ich habe ursprünglich nicht darüber nachgedacht, weil ich alles andere in Ordnung gebracht habe.