Als Voraussetzung für meine Tests muss ich ein großes komplexes Objektmodell erstellen, das später als Argument für eine bestimmte API bereitgestellt wird, um es zu verarbeiten. Werte für das Modell sind Testeingabedaten, die auf der Fitnesse-Seite angezeigt werden.Wie Sie komplexe Composite-Pojo-Objekt in Fitnesse SLIM einrichten?
Das Modell sieht so aus:
class FinalEntity extends DoFixture{
public String field1;
public String field2;
// More fields....
public String field20;
public ArgumentOneEntity argOne;
public List<ArgumentTwoEntity> argTwo;
// More fields....
//Getters and setters ....
}
class ArgumentOneEntity{
public String field1;
public String field2;
// More fields....
public List<String> argList = new ArrayList();
public List<String> argList1 = new ArrayList();
//Getters and setters ....
}
class ArgumentTwoEntity{
public String field1;
public String field2;
// More fields....
//Getters and setters ....
}
Es ist möglich, eine Tabelle zu verwenden, aber es ist extrem inconvinient. Mit FIT war es möglich, so etwas zu tun:
!define argOne (|field1|value1|
|field2|value2|
|setArgList;|arg1,arg2,arg3|
|setArgList1;|arg4,arg5,arg6|
)
!define argTwo (|field1|value1|
|field2|value2|
)
|FinalEntity |
|setField1;|${argOne}|
|setField2;|${argTwo}|
es in einigen magischen Weise Tabellen aus Variable erforderlich Frage analysieren würde. Jetzt stellt sich die Frage: Wie funktioniert es mit Slim? Wenn das nicht möglich ist, was sind vernünftige Alternativen, um ein solches Objekt in SLIM zu erstellen, ohne einen riesigen chaotischen Tisch zu erstellen, den niemand versteht.
Optionen, die ich über: 1. Um Testdaten in Dateien in entsprechenden JSON-Objekten zu speichern, analysieren Sie sie und zeigen Sie Geschäftsbenutzer in Fitnesse Seiten. Ich mag es nicht. Da es sehr unpraktisch ist, solche Tests aufrechtzuerhalten, müssen Sie den Test ausführen oder nach einer entsprechenden Datei mit Daten suchen. 2. Um beide Abhängigkeiten für SLIM und FIT hinzuzufügen, um sowohl von slim als auch von fixlibrary zu profitieren. Das hat nicht funktioniert - der Fitnesse-Server würde einfach nicht starten. 3. Gebrauchte Tabelle - das war sehr schmerzhaft und schwer zu pflegen.
Haben Sie eine vernünftige Lösung für dieses Problem?
Keine Notwendigkeit zu sagen, Dinge wie aktualisieren Sie Ihr Modell - ich kann das nicht, oder etwas anderes wie JBehave verwenden - ich würde es gerne tun, außerdem hatte ich positive Erfahrungen mit JBehave in der Vergangenheit, aber bedauerlicherweise in diesem Fall ich bin nicht derjenige, der Entscheidungen über Technologien und Ansätze trifft.
Müssen Sie die Java-Objekte füllen, oder müssen Sie nur eine ordnungsgemäße Anfrage an die API erhalten? Sie geben an, dass Sie posten müssen, sprechen Sie über eine http-Post von JSON, XML oder etwas anderes? –
Java-Objekt wird dann als Modell-Argument an die API übergeben. Als eine Möglichkeit denke ich darüber nach, Variablen in JSON oder XML einzufügen und sie dann als String an Java zu übergeben, und dort kann ich Jackson oder JAXB verwenden, um es zu parsen, aber es sieht ziemlich komisch aus - zu viele Conversion-Aktionen. Daher dachte ich, dass es vielleicht eine einfache Lösung gibt, von der ich nichts weiß, da ich kein Experte in Fitnesse bin. –