读取CSV文件并使用每一行作为spock的where子句中的输入

时间:2014-02-13 05:05:52

标签: java groovy spock

以下是我的CSV文件的示例

A1,B1
A2,B2
A3,B3

这是我的Spock测试:

def testCSV() {
 when:
   def A = ValueOfA
   def B = ValueOfA

 then:  
  println A 
  println B

where:
 ValueOfA | ValueOfA
**get these value from csv file**

}

是否可以读取csv文件并传递where子句中的值?

2 个答案:

答案 0 :(得分:4)

您可以使用此http://groovy-almanac.org/csv-parser-with-groovy-categories/之类的私有方法读取csv文件,然后您可以像这样分配变量a和b:

where:
a << [readCSVAMap[0],readCSVAMap[1],readCSVAMap[2]]
b << [readCSVBMap[0],readCSVBMap[1],readCSVBMap[2]]

答案 1 :(得分:0)

def testCSV() {

 when:
   def A = inputValues.split(",")[0]
   def B = inputValues.split(",")[1]

 then:  
  println A 
  println B

where:

 inputValues << new File( "\\src\\test\\resources\\test.txt").readLines().toList()

/*  To get specific Rows
 inputValues << new File( "\\src\\test\\resources\\test.txt").readLines().toList().subList(1,10)
*/
}