27
По матчеру
assertThat(
someOwner,
both(withEmail(containsString(«@»)))
.and(withUid(is(uid))
);
в каждую семью
для email
для uid
java.lang.AssertionError:
Expected: email a string containing «@»
but: email was null
полная свобода
51
Программирование
на xml/json/yaml?
Нет логики
Протокол (доки, микросервисы)
Slide 52
Slide 52 text
52
Программирование
на xml/json/yaml?
Нет логики
Протокол (доки, микросервисы)
Как список покупок
Slide 53
Slide 53 text
53
Кодогенерация - это просто и очень полезно
Slide 54
Slide 54 text
54
2
Задачи
Slide 55
Slide 55 text
55
2 2
+
Задачи Решения
Slide 56
Slide 56 text
56
2 2
+ + 2
Задачи Решения Слайда
Slide 57
Slide 57 text
57
Тестовые методы списком констант
public final class TestMethodConsts {
psf String TEST_METHOD_shouldCreate =
"ru.lanwen.heisenbug.EticketResourceTest#shouldCreate";
}
КОНСТАНТА = "полный.референс#метода"
64
square/javapoet
FieldSpec.builder(
ClassName.get(String.class),
key, PUBLIC, STATIC, FINAL
).initializer("$S", value)
.build()
Поле
Slide 65
Slide 65 text
65
square/javapoet
FieldSpec.builder(
ClassName.get(String.class),
key, PUBLIC, STATIC, FINAL
).initializer("$S", value)
.build()
Тип, имя и модификаторы
Slide 66
Slide 66 text
66
square/javapoet
FieldSpec.builder(
ClassName.get(String.class),
key, PUBLIC, STATIC, FINAL
).initializer("$S", value)
.build()
Значение
86
Огромное количество готовых инструментов
lanwen/heisenbug17
Project Lombok
1
Jsonschema2pojo
2
JAXB/XJC
3
Hamcrest Matchers
4
RARC
5
Slide 87
Slide 87 text
87
Огромное количество готовых инструментов
lanwen/heisenbug17
Есть слабые стороны, при большой выгоде
Slide 88
Slide 88 text
88
Огромное количество готовых инструментов
lanwen/heisenbug17
Хватит это терпеть писать toString/equals вручную!
Есть слабые стороны, при большой выгоде
Slide 89
Slide 89 text
89
Спасибо
Меркушев Кирилл
lanwen
руководитель группы автоматизации процессов
разработки и тестирования в Яндексе