Как пользоваться Hamcrest for testing ? Некоторое время назад я написал статью Hello World JUnit со всеми подробностями. В этом уроке мы рассмотрим шаги how to use Hamcrest to create JUnit для вашего проекта Java .
Hamcrest является testing framework для Java с сопоставителями в комплекте с инфраструктурой JUnit для создания более читаемых модульных тестов Java. Я попробовал это сегодня и мне это очень нравится. Очень простая и полная документация делает его идеальным.
Если у вас есть какие-либо из нижеперечисленных вопросов, то вы попали по адресу:
- Написание тестовых примеров JUnit в Java с использованием Eclipse
- Как написать тестовые примеры junit на Java
- Примеры тестовых случаев JUnit в Java
- Написание тестовых примеров JUnit с использованием
Hamcrest Matchers - Преимущества
assertThat vs AssertМетоды в тестах JUnit - Hamcrest
assertthat()руководство
Давайте начнем:
Создать класс Java CrunchifyHemcrestJUnitTest.java в затмении. Мы собираемся создать 4 различных категории тестов.
- Создание тестовых случаев JUnit для
Java List - Создание тестовых примеров JUnit для Java Map
- Создание тестовых случаев JUnit для объекта Java
- Создание тестовых случаев JUnit для Null Check
Вот лучшие совпадения Hamcrest:
- является()
- hasItems ()
- hasSize ()
- содержит()
- containsInAnyOrder ()
Ниже учебник охватывает практически все тестовые примеры соответствия, которые будут проходить все время . Просто измените, чтобы создать ложное срабатывание и так далее.
Вы должны добавить ниже Maven зависимость в вашем проекте.
|
1
2
3
4
5
|
< зависимость >
< groupId > org . Hamcrest < / groupId >
< artifactId > hamcrest — all < / artifactId >
< версия > 1.3 < / версия >
< / зависимость >
|
Просто добавьте это к pom.xml файл. Если вы не видите pom.xml, следуйте этому руководству .
Вот полный код Java
Просто щелкните правой кнопкой мыши на классе и Run As -> JUnit Test ,
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
пакет crunchify. ком . учебник ;
Импортировать статический орг. подголовник . CoreMatchers . hasItems ;
Импортировать статический орг. подголовник . CoreMatchers . есть ;
Импортировать статический орг. подголовник . CoreMatchers . нет ;
Импортировать статический орг. подголовник . CoreMatchers . notNullValue ;
Импортировать статический орг. подголовник . CoreMatchers . nullValue ;
Импортировать статический орг. подголовник . MatcherAssert . assertThat ;
Импортировать статический орг. подголовник . Спички . hasProperty ;
Импортировать статический орг. подголовник . коллекция . IsCollectionWithSize . hasSize ;
Импортировать статический орг. подголовник . коллекция . IsIterableContainedInAnyOrder . containsInAnyOrder ;
Импортировать статический орг. подголовник . коллекция . IsIterableConistingInOrder . содержит ;
Импортировать Java. Util. ArrayList ;
Импортировать Java. Util. Массивы ;
Импортировать Java. Util. HashMap ;
Импортировать Java. Util. Список ;
Импортировать Java. Util. Карта ;
Импортировать Java. Util. Объекты ;
Импортировать орг. подголовник . коллекция . IsEmptyCollection ;
Импортировать орг. подголовник . коллекция . IsMapContained ;
Импортировать орг. подголовник . ядро. IsNull ;
Импортировать орг. Junit . Тест ;
/ **
* @author Crunchify.com
*
* Учебники по Hamcrest JUnit от Crunchify.com
* 1. Создание тестовых случаев JUnit для списка Java
* 2. Создание тестовых случаев JUnit для Java Map
* 3. Создание тестовых случаев JUnit для объекта Java
* 4. Создание тестовых случаев JUnit для Null Check
*
* /
общественности учебный класс CrunchifyHamcrestJUnitTest {
// Testcase-1: JUnit для списка
@Тестовое задание
общественности недействительным crunchifyListJUnitTests ( ) {
Список
Список
log ( / n ~~~~~~~~~~~ Тест проверки списка JUnit ~~~~~~~~~~~ ) ;
log ( 1) assertThat (company, is (crunchifyCompany)) check ) ;
// Ярлык для часто используемого — (equalTo (x)).
assertThat ( компания , is ( crunchifyCompany ) ) ;
log ( 2) .hasItems () check ) ;
assertThat ( компания , hasItems ( Crunchify.com ) ) ;
log ( 3) .hasSize () check ) ;
assertThat ( компания , hasSize ( 3 ) ) ;
assertThat ( company . size ( ) , есть ( 3 ) ) ;
проверка log ( 4) .contains () и .containsInAnyOrder () ) ;
assertThat ( компания , содержит ( Crunchify.com , Google.com , Facebook.com ) ) ;
assertThat ( компания , СодержитInAnyOrder ( Google.com , Crunchify.com , Facebook.com ) ) ;
// ПОТЕРПЕТЬ ПОРАЖЕНИЕ
// assertThat (company, contains (Google.com, Crunchify.com, Facebook.com));
log ( 5) .empty () check ) ;
assertThat ( компания , не ( IsEmptyCollection . empty ( ) ) ) ;
assertThat ( новый ArrayList < > ( ) , IsEmptyCollection . пусто ( ) ) ;
}
частный недействительным log ( Строка crunchifyText ) {
Система. вне. println ( crunchifyText ) ;
}
@Тестовое задание
общественности недействительным crunchifyMapJUnitTests ( ) {
Карта < Строка , Строка > Компания знак равно новый HashMap < > ( ) ;
компания. положить ( С , Crunchify.com ) ;
компания. положить ( G , Google.com ) ;
компания. положить ( F , Facebook.com ) ;
Карта < Строка , Строка > crunchifyCompany знак равно новый HashMap < > ( ) ;
crunchifyCompany . положить ( С , Crunchify.com ) ;
crunchifyCompany . положить ( G , Google.com ) ;
crunchifyCompany . положить ( F , Facebook.com ) ;
log ( / n ~~~~~~~~~~~ JUnit Map Check Test — все тесты пройдут в нашем примере ~~~~~~~~~~~ ) ;
log ( 1) assertThat (проверка компании (is crunchifyCompany) ) ;
assertThat ( компания , is ( crunchifyCompany ) ) ;
log ( 2) assertThat (company.size (), is (3)) check ) ;
assertThat ( company . size ( ) , есть ( 3 ) ) ;
проверка log ( 3) .hasEntry (), которая создает сопоставление для Карт, соответствующее хотя бы одной записи, ключ которой равен указанному ключу и значению. ) ;
assertThat ( компания , IsMapContains . hasEntry ( C , Crunchify.com ) ) ;
assertThat ( компания , не ( IsMapContained . hasEntry ( G , Twitter.com ) ) ) ;
log ( 4) .hasKey () создает сопоставление для Карт, соответствующее хотя бы одному ключу, равному указанному ключу. ) ;
assertThat ( компания , IsMapContains . hasKey ( F ) ) ;
log ( 5) .hasValue () создает сопоставление для Карт, соответствующее как минимум одному ключу, равному указанному значению. ) ;
assertThat ( компания , IsMapContains . hasValue ( Crunchify.com ) ) ;
}
@SuppressWarnings ( не проверено )
@Тестовое задание
общественности недействительным crunchifyObjectJUnitTests ( ) {
Список <Компания> список знак равно Массивы . asList ( новый Компания ( Crunchify , 10 ) , новый Компания ( Google , 30000 ) ) ;
assertThat ( список , hasItems ( новый Компания ( Crunchify , 10 ) , новый Компания ( Google , 30000 ) ) ) ;
assertThat ( список , СодержитInAnyOrder ( новый Компания ( Google , 30000 ) , новый Компания ( Crunchify , 10 ) ) ) ;
assertThat ( список , СодержитInAnyOrder ( hasProperty ( имя , есть ( Google ) ) , hasProperty ( имя , есть ( Хруст ) ) ) ) ;
log ( / n ~~~~~~~~~~~ JUnit Проверка объекта завершена ~~~~~~~~~~~ ) ;
}
// Создать объект компании
общественности учебный класс Компания {
общественности Компания ( Строка имя , ИНТ employeeCount ) {
это. название знак равно имя ;
это. employeeCount знак равно employeeCount ;
}
частный строка имя ;
частный ИНТ employeeCount ;
общественности ИНТ getEmployeeCount ( ) {
вернуть employeeCount ;
}
общественности недействительным setEmployeeCount ( int employeeCount ) {
это. employeeCount знак равно employeeCount ;
}
общественности строка getName ( ) {
вернуть имя ;
}
общественности недействительным setName ( String имя ) {
это. название знак равно имя ;
}
// Проверка равенства, переопределение equals () и hashCode ()
@Override
общественности логический равно ( объект в ) {
если ( это == в )
вернуть правда ;
если ( с == ноль | | getClass ( ) ! знак равно с . getClass ( ) )
вернуть ложь ;
Фрукты компании знак равно ( Компания ) с ;
вернуть employeeCount == фрукты. employeeCount && Objects.equals (name, fruit.name);
}
@Override
общественности ИНТ hashCode ( ) {
вернуть Объекты . хэш ( имя , employeeCount ) ;
}
}
@Тестовое задание
общественности недействительным crunchifyNullCheckJUnitTest ( ) {
// Два способа проверить isNull
assertThat ( null , is ( nullValue ( ) ) ) ;
assertThat ( null , is ( IsNull . nullValue ( ) ) ) ;
// Два способа проверить isNotNull
assertThat ( crunchify , is ( notNullValue ( ) ) ) ;
assertThat ( crunchify , is ( IsNull . notNullValue ( ) ) ) ;
log ( / n ~~~~~~~~~~~ JUnit Проверка нулевой проверки завершена ~~~~~~~~~~~ ) ;
}
}
|
Вывод консоли Eclipse:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ JUnit Object Проверка теста завершена ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ JUnit Null Проверка теста завершена ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Тест проверки списка JUnit ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
1 ) assertThat ( компания , является ( crunchifyCompany ) ) проверять
2 ) , hasItems ( ) проверять
3 ) , hasSize ( ) проверять
4 ) , содержит ( ) а также , СодержитInAnyOrder ( ) проверять
5 ) , пусто ( ) проверять
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Тест JUnit Map Check — Все тесты будут проходить в наш пример ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
1 ) assertThat ( компания , является ( crunchifyCompany ) проверять
2 ) assertThat ( company . size ( ) , есть (3)) проверять
3 ) , hasEntry ( ) проверьте, что создает сопоставитель для Карты соответствия по меньшей мере , один вход которого ключ равен указанный ключ & значение.
4 ) , hasKey ( ) создает сопоставитель для Карты соответствия по меньшей мере , один ключ , который равно указанный ключ.
5 ) , hasValue ( ) создает сопоставитель для Карты соответствия по меньшей мере , один ключ , который равно указанное значение.
|
0.00 (0%) 0 votes








