2016-03-28 63 views
0

我在獲取數據表映射到黃瓜類型時遇到了一些麻煩。 黃瓜希望pojos與stepdefs共處一地。但如果它在另一個模塊中呢?我將如何做映射?我可以添加到我的跑步者嗎?將黃瓜表實例化爲對象時出錯

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

而我使用的是I型已經得到周圍鋪設

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; 
     } 

    } 

但是,當我嘗試訪問它在黃瓜這樣

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

我得到這個錯誤。我認爲,爲了得到一個數據表來匹配一個類型,你只需要有成員變量匹配。我錯過了另一個步驟嗎?

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

回答

0

原來這是一個maven問題。它試圖實例化一個接口,而不是一個類,這就是爲什麼它拋出這個問題

0

你可以得到一個更小的例子工作?對我來說,聽起來很奇怪你使用的數據類型必須與步驟共處一處。只要該類型在類路徑中可用,它應該盡我所能理解。

同時,瞭解到xstream包在某些情況下表現出乎意料,並且可能會在即將推出的Cucumber版本中被替換。

看看你是否能得到這個樣的工作,http://www.thinkcode.se/blog/2014/06/30/cucumber-data-tables

如果你能得到它的工作,使用移動到另一個包中的數據類型,看看它是移動單獨打破它。

+0

所以這就是我羞於承認,我實際上只是有一個maven問題,黃瓜工作正常。我在這一點上做了什麼 - 刪除問題?感謝您的回覆! – Steve

+0

你爲其他任何有類似問題的人保留答案。編輯描述你的Maven問題是可能的。這完全是關於分享和幫助。 –