已經使用Spock一個公平的位,並且非常喜歡在輸入/輸出場景的測試中使用表的能力。從斯波克文檔從groovy中的表格數據填充域對象
例如:
class Math extends Specification {
def "maximum of two numbers"(int a, int b, int c) {
expect:
Math.max(a, b) == c
where:
a | b | c
1 | 3 | 3
7 | 4 | 4
0 | 0 | 0
}
}
我在金融行業中,我們處理了大量的交易「書」的工作。
用表格形式表示這些書是很好的。
因此,而不是使用的建設者,如:
builder.addQuote(1000000, 1.1220, 1.2230)
.addQuote(2000000, 1.1219, 1.2233)
.addQuote(10000000, 1.1217, 1.2234)
.addQuote(15000000, 1.1216, 1.2240)
將是巨大的使用某種類型的表:
List<Quote> quotes = new ArrayList<Quote>();
MyUtil.insertInto(quotes).fromTable{
quantity | bid | ask
1000000 | 1.1220 | 1.2230
2000000 | 1.1219 | 1.2233
10000000 | 1.1217 | 1.2234
15000000 | 1.1216 | 1.2240
}
見過有人去一些方式來做到這一點here,但該示例將結果分配給一般的「行」對象。
如果有一個實用程序將行值寫入給定的域對象,使用第一行的字段名稱將非常棒。
我不明白問題是什麼。您是否在談論在Spock之外使用相同的數據表語法?這需要你實現一個像Spock那樣的Groovy編譯器插件。 –
不,我的意思是能夠使用Spock測試中的表格數據來構建對象圖。我將更新上面的代碼以嘗試使其更清晰。這些表在Spock中非常易讀。爲了能夠使用相同的格式來填充對象列表將是很好的。 – Ben
完成此操作的唯一方法是分叉Spock。 –