2016-03-28 13 views
0

Ich habe Probleme, Databases zu einem Typ in Cucumber zuzuordnen. Cucumber erwartet, dass Pojos gemeinsam mit den Stepdefs lokalisiert werden. Aber was ist, wenn es in einem anderen Modul ist? Wie würde ich das Mapping machen? Gibt es eine Linie, die ich meinem Läufer hinzufügen kann?Fehler bei der Instanziierung der Gurkentabelle zum Objekt

Given an appointment 
    |poid|advisorCrewId|appointmentType| 
    |1234|036264|wxyz| 
When blah blah 
Then blah blah 

Und ich bin mit einem Typ I bereits hätte rumliegen

public class Appointment implements Serializable { 

     private static final long serialVersionUID = -1456832796215683035L; 

     private Integer poid; 

     private String advisorCrewId; 

     private String appointmentType; 

     public Appointment(Integer poid, String advisorCrewId, String appointmentType) { 
      this.poid = poid; 
      this.advisorCrewId = advisorCrewId; 
      this.appointmentType = appointmentType; 
     } 

     public Integer getPoid() { 
      return poid; 
     } 

     public String getAdvisorCrewId() { 
      return advisorCrewId; 
     } 

     public String getAppointmentType() { 
      return appointmentType; 
     } 

    } 

Aber wenn ich versuche, darauf zuzugreifen in Gurke wie diese

@Given("^an appointment$") 
    public void method_name(List<Appointment> appointments) { 
     this.appointments = appointments; 
     poid = appointments.get(0).getPoid(); 
    } 

bekomme ich diesen Fehler . Ich dachte, dass, um eine Datentabelle zu erhalten, um einen Typ zu entsprechen, Sie einfach die Mitgliedsvariablen zusammenpassen mussten. Gibt es einen weiteren Schritt, den ich vermisse?

cucumber.runtime.CucumberException: cucumber.deps.com.thoughtworks.xstream.converters.ConversionException: Cannot construct com.blahblah.Appointment 

Antwort

0

Es stellte sich heraus, es war ein Maven-Problem. Es wurde versucht, ein Interface zu instantiieren, keine Klasse und deshalb warf es dieses Problem auf

0

Können Sie ein kleineres Beispiel zur Arbeit bekommen? Es klingt für mich seltsam, dass der Datentyp, den Sie verwenden, zusammen mit den Schritten platziert werden sollte. Solange der Typ auf dem Classpath verfügbar ist, sollte er so weit funktionieren, wie ich momentan verstehen kann.

Zur gleichen Zeit, haben verstanden, dass das Xstream-Paket in einigen Situationen unerwartet und dass es in einer kommenden Version von Cucumber ersetzt werden könnte.

Sehen Sie, wenn Sie diese Probe, an die Arbeit kann http://www.thinkcode.se/blog/2014/06/30/cucumber-data-tables

Wenn Sie es bekommen kann zu arbeiten, bewegen Sie den Datentyp in ein anderes Paket verwendet und sehen Sie es, dass allein bricht es bewegen.

+0

Also das ist, wo ich verlegen zugeben, dass ich eigentlich nur ein Maven-Problem hatte, Gurke war gut in Ordnung. Was mache ich an dieser Stelle - löschen Sie die Frage? Danke für die Antwort! – Steve

+0

Sie behalten die Antwort für jeden, der ein ähnliches Problem hat. Möglich mit einer Bearbeitung, die beschreibt, was Ihr Maven-Problem war. Es geht darum zu teilen und zu helfen. –

Verwandte Themen