spock interview questions with answers
Очистите Споцк Интервју успешно са овом листом Споцк Интервиев Питања:
У ово Споцк Туториали за све , истражили смо све о Интеграција и функционално тестирање у Споцк-у у нашем претходном водичу.
Овај водич обухватиће најчешће постављана питања о интервјуима око Споцк оквира.
шта је .7з датотека?
Такође ћемо покушати да разумемо Споцк методе учвршћивања и подршку уграђених проширења које чине Споцк заиста моћним алатом за многе типове тестирања као што су Унит, Интегратион и од краја до краја.
Најпопуларнија питања за Споцк интервју
У наставку су наведена нека од најчешће постављаних питања за Споцк интервју са одговорима и примерима.
Истражимо !!
П # 1) Може ли Споцк тест имати више блокова када, а затим?
Одговор: Генерално се препоручује да имате мале тестове или сценарије, јер покушај да се уради пуно ствари у једном тесту може бити мирис кода. Кад смо то већ рекли, савршено је валидно имати вишеструке блокове када и онда у тесту. Тест ће се сматрати успешним само када су сви тадашњи блокови у стању проласка.
Погледајмо пример који то илуструје:
def 'illustrate multiple when and then blocks'() { given: def input1 = 50 def input2 = 100 def result when: result = input1 + input2 then: result == 150 when: result = input2 - input1 then: result == 50 }
У горњем блоку кода можете видети да имамо 2 блока када и онда.
Имајте на уму следеће тачке:
- Блокови се извршавају редоследом њиховог изгледа, тј. Секвенцијално.
- Ако било ко не блокира, тест ће пропасти.
- Тврдње у свим тадашњим блоковима треба да прођу како би свеукупни тест успео.
П # 2) Које све методе фиксирања су доступне у Споцку?
Одговор: Методе фиксирања су попут повратних позива који се позивају када се покрене одређена удица догађаја.
Споцк је обезбедио 4 тестна тела која се покрећу против различитих догађаја:
- сетупСпец - Ради једном пре него што започне извршење целокупне датотеке Спец.
- цлеанупСпец - Покреће се једном када се изврше сви тестови у датој датотеци Спец
- поставити - Ради једном пре сваког теста у спецификацији.
- поспремити - Ради једном након сваког теста у спецификацији.
Погледајмо узорак кода који илуструје методе учвршћивања:
class TestFixtureSpec extends Specification { def setupSpec() { println 'in setup spec!' } def cleanupSpec() { println 'in cleanup spec!' } def setup() { println 'in setup!' } def cleanup() { println 'in cleanup!' } def 'test spec1'() { given: println '****test spec1****' } def 'test spec2'() { given: println '****test spec2****' }}
Испод је излаз горњег узорка кода:
унит тестирање вс функционално тестирање вс интеграционо тестирање
у спецификацијама за подешавање!
у подешавању!
**** тест спец1 ****
у чишћењу!
у подешавању!
**** тест спец2 ****
у чишћењу!
у спец. чишћења!
Као што је приказано горе, можете приметити да се спецификације за подешавање и чишћење позивају само једном за целу спецификацију, а кораци / уређаји за подешавање и чишћење се позивају једном по тесту.
П # 3) Да ли се Споцк тестови могу користити за тестирање услуга заснованих на РЕСТ-у?
Одговор: Да, Споцк фрамеворк се може користити за креирање Е2Е или интеграционих тестова за распоређене услуге одмора користећи уобичајене Јава библиотеке као што је Рест темплате, итд. (Такође, имајте на уму да се Споцк такође може користити за покретање тестова за апликације базиране на Спринг боот, као са другим оквирима попут Селен ).
Погледајмо ово на једноставном примеру који користи Спринг-ову класу РестТемплате и изводи операцију добијања на јавном хостованом АПИ-ју и проверава да одговор није нулл.
Пример:
class RestApiIntegrationSpec extends Specification { def 'check rest api status'() { when: 'a rest call is performed to the status page' RestTemplate restTemplate = new RestTemplate() String response = restTemplate.getForObject('https://httpbin.org/get', String.class) then: response != null } }
У горњем примеру можете се позвати на Споцк спецификацију која се користи за потврђивање одговора јавног АПИ-ја.
П # 4) Која су ограничења Споцк оквира?
Одговор: Иако крива учења за Споков оквир није толико стрма колико је лако научити, његова декларативна синтакса чини је врло читљивом.
У међувремену, може се размотрити неколико тачака:
- За апликације на Јава кодној бази, употреба Споцк-а резултираће додавањем новог језика, тј. Гроови-а.
- Споцк тестови раде нешто спорије од изворних ЈУнит тестова.
- ИДЕ подршка за Споцк није тако добра као за друге оквире попут ЈУнит.
Упркос свим горњим тачкама, ипак, предности Споцкова оквира надмашују малу листу недостатака које Споцк има.
П # 5) Објасните нека уграђена проширења оквира Споцк.
Одговор: Споцк нуди пуно уграђених додатака / кука / окидача који су углавном засновани на напоменама (Видели смо неколико њих у одељку / питању тестних уређаја).
Погледајмо неке уграђене дискусије са примерима:
@Игноре: Да бисте спречили извршење неке функције (или појединачне методе). Да бисте користили методу једноставног украшавања (појединачна метода испитивања) или целу спецификацију, ово ће осигурати да се означени метод или класа не изврше.
@Ignore def 'check case-insensitive equality of 2 strings'() { given: 'two input strings' String str1 = 'hello' String str2 = 'HELLO world' when: 'strings are lowercased' str1 = str1.toLowerCase() str2 = str2.toLowerCase() then: 'equal strings should return success' str1 == str2 }
@ИгнореРест: Ова напомена је корисна када само желите да изаберете једну и извршите остатак метода дате спецификације.
како генерисати случајне бројеве у ц ++ између 0 и 100
@IgnoreRest def 'check case-insensitive equality of 2 strings'() { given: 'two input strings' String str1 = 'hello' String str2 = 'HELLO world' when: 'strings are lowercased' str1 = str1.toLowerCase() str2 = str2.toLowerCase() then: 'equal strings should return success' str1 == str2 } def 'check addition of 2 numbers'() { given: int input1 = 10 int input2 = 25 expect: input1.getClass().toString() == 'class java.lang.Integer' input2.getClass().toString() == 'class java.lang.Integer' input1 = Integer.MIN_VALUE when: int result = input1 + input2 then: result == 35 }
Као што се види у горњем примеру, извршиће се метода означена са @ИгнореРест, а остатак тестова ће се занемарити.
@ИгнореИф: Ова напомена је условно занемаривање.
На пример: Ако не желите да покренете неке тестове на Мац ОС-у, тада можете да користите комбинацију @ИгнореИф са Систем.гетПроперти („ос.наме“) која ће осигурати да се тестови покрећу само ако се пронађе одговарајући ОС .
Покушајмо ово да разумемо са доњим узорком кода:
@IgnoreIf({ System.getProperty('os.name').contains('Mac') }) def 'check case-insensitive equality of 2 strings'() { given: 'two input strings' String str1 = 'hello world' String str2 = 'HELLO world' when: 'strings are lowercased' str1 = str1.toLowerCase() str2 = str2.toLowerCase() then: 'equal strings should return success' str1 == str2 }
У горњем узорку кода користили смо напомену @ИгнореИф са условом на Систем.гетПроперти који ће проверити да ли је „Мац“ у вредности својства и занемарити само ако је подударање услова успешно.
Погледајмо овде још једно продужење тј. @Пауза у утакмици: Ово помаже да се помене вредност временског ограничења у јединици по вашем избору за тест који се извршава и ако се праг временског ограничења прекрши, тест ће изузети.
Још једна важна ствар коју треба напоменути овде је да се @Тимеоут напомена може поменути и у целој спецификацији, што ће комбиновати трајање свих појединачних тестова и изузетак у случају кршења прага.
@Timeout(value=10, unit= TimeUnit.MILLISECONDS) class SampleSpec extends Specification { def 'check case-insensitive equality of 2 strings'() { //test1 } def 'check addition of 2 numbers'() { //test2 } }
У горе наведеном коду, ако укупно време извршавања спецификације пређе 10 мс, извршење сценарија неће успети. Резултат са детаљима грешке можете видети у конзоли за грешке.
Слично горе поменутим проширењима, постоји и неколико других уграђених проширења попут:
@Захтева: Што захтева тачно одређени услов.
@Питање: Да повеже све недостатке повезане са тест случајем итд.
Ова проширења додају много флексибилности и снаге Споцк спецификацијама и дају пуно контроле за извршавање теста.
Закључак
Стога смо овде у овом водичу покрили најпопуларнија питања за Споцк Интервиев. Крива учења за Споцк је ниска због чињенице да језик гроови следи декларативни стил програмирања и изузетно је читљив.
Иако релативно нов, Споцк стиче популарност као оквир избора за писање различитих врста тестова Јава или Гроови-ове апликације.
Надам се да сте уживали у свим информативним водичима у овој Споцк серији. Заиста смо сигурни да би ови водичи обогатили ваше знање и разумевање Споцка.
ПРЕВ Туториал |. | ПРВИ Водич
Препоручено читање
- Писање јединствених тестова са Споцк Фрамеворк-ом
- Споцк за интеграцију и функционална испитивања са селеном
- Споцк ругање и стубирање (примери са видео водичима)
- Тестирање на основу података или параметризовано са Споцк Фрамеворк-ом
- Водич за Споцк: Тестирање са Споцком и Гроовием
- Питања и одговори за интервјуе
- Питања и одговори за испитивање ЕТЛ-а
- 20 најпопуларнијих питања и одговора у интервјуу за ТестНГ