Использовали 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, но пример присваивает результаты общему объекту «Row».
Было бы здорово иметь утилиту, которая записывает значения строк в заданный объект домена, используя имена полей из первой строки.
Я не понимаю, в чем вопрос. Вы говорите о том, что синтаксис таблицы данных за пределами Spock? Это потребует, чтобы вы реализовали плагин компилятора Groovy, такой как Spock. –
Нет, я хочу построить граф объектов, используя табличные данные в тесте spock. Я обновлю код, чтобы попытаться сделать его более понятным. Таблицы настолько читаемы в Споке. Чтобы иметь возможность использовать тот же формат для заполнения списка объектов, было бы здорово. – Ben
Единственный способ добиться этого - развить Спок. –