SlideShare uma empresa Scribd logo
1 de 83
Baixar para ler offline
M O C K S , 
 S T U B S 
 A N D
F A K E S . 

¿ W H A T 
 E L S E ?.
 A L E X S O T O B 	 - 	 L O R D O F T H E J A R S . C O M
	alexsotob		lordofthejars
	alexsotob		lordofthejars
Commit	Stage
C O N T I N U O U S
I N T E G R A T I O N
	alexsotob		lordofthejars
U N I T 
 T E S T S
Fast,	Isolated,	Repeteable,	Self-Validating,	Timely
F I R S T
A P P L I C A T I O N S 
 A R E 
 C O M P L E X
T E S T 
D O U B L E
	alexsotob		lordofthejars
M O C K S
	alexsotob		lordofthejars
M O C K S
Pre-programmed
with
expectations
	alexsotob		lordofthejars
M O C K S
Pre-programmed
with
expectations
Behavior
Verification
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
Easy
to
write
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
Easy
to
write
Versatile
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
Easy
to
write
Versatile
Mockito,
EasyMock,
jMock
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
Easy
to
write
Versatile
Mockito,
EasyMock,
jMock
Verbose
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
Easy
to
write
Versatile
Mockito,
EasyMock,
jMock
Verbose
Reimplementing
Business
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
Easy
to
write
Versatile
Mockito,
EasyMock,
jMock
Verbose
Reimplementing
Business
No
state
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
Easy
to
write
Versatile
Mockito,
EasyMock,
jMock
Verbose
Reimplementing
Business
No
state
No
executing
full
stack
	alexsotob		lordofthejars
testCompile	testCompile	(('org.mockito:mockito-all:1.10.19''org.mockito:mockito-all:1.10.19'))		{{
		exclude	group		exclude	group::		'org.hamcrest''org.hamcrest'
}}
D E P E N D E N C I E S
	alexsotob		lordofthejars
@@RunWithRunWith((MockitoJUnitRunnerMockitoJUnitRunner..classclass))
publicpublic		classclass		TestTest		{{
		@Mock	EmailService	email		@Mock	EmailService	email;;
}}
publicpublic		classclass		TestTest		{{
		@Mock	EmailService	email		@Mock	EmailService	email;;
				
		@Before			@Before	publicpublic		voidvoid		beforebefore(())		{{
				MockitoAnnotations				MockitoAnnotations..initMocksinitMocks((thisthis))
				}}
}}
EmailService	emailService	EmailService	emailService	==	Mockito	Mockito..mockmock((EmailServiceEmailService..classclass));;
I N I T
	alexsotob		lordofthejars
MockitoMockito..whenwhen((emailemail..receiveBodyMessagesWithSubjectreceiveBodyMessagesWithSubject(("My	Subject""My	Subject"))))..thenReturnthenReturn(("This	is	My	Message""This	is	My	Message"))
SystemSystem..outout..printlnprintln((emailemail..receiveBodyMessagesWithSubjectreceiveBodyMessagesWithSubject(("Wrong	subject""Wrong	subject"))));;
SystemSystem..outout..printlnprintln((emailemail..receiveBodyMessagesWithSubjectreceiveBodyMessagesWithSubject(("My	Subject""My	Subject"))));;
SystemSystem..outout..printlnprintln((emailemail..receiveBodyMessagesWithSubjectreceiveBodyMessagesWithSubject(("My	Subject""My	Subject"))));;
E X A M P L E
	alexsotob		lordofthejars
MockitoMockito..whenwhen((emailemail..receiveBodyMessagesWithSubjectreceiveBodyMessagesWithSubject((MatchersMatchers..anyStringanyString(())))))..thenReturnthenReturn(("This	is	My	Message""This	is	My	Message"));;
SystemSystem..outout..printlnprintln((emailemail..receiveBodyMessagesWithSubjectreceiveBodyMessagesWithSubject(("Subject""Subject"))));;
E X A M P L E 
 W I T H 
 A N Y
	alexsotob		lordofthejars
InvoiceService	invoiceService	InvoiceService	invoiceService	==		newnew		InvoiceServiceInvoiceService((emailemail));;
invoiceServiceinvoiceService..sendsend(());;
MockitoMockito..verifyverify((emailemail,,	Mockito	Mockito..timestimes((11))))..sendMessagesendMessage((MatchersMatchers..anyStringanyString(()),,	Matchers	Matchers..anyStringanyString(())));;
E X A M P L E 
 V E R I F Y
	alexsotob		lordofthejars
InvoiceService	invoiceService	InvoiceService	invoiceService	==		newnew		InvoiceServiceInvoiceService((emailemail));;
invoiceServiceinvoiceService..sendsend(());;
ArgumentCaptor	argument	ArgumentCaptor	argument	==	ArgumentCaptor	ArgumentCaptor..forClassforClass((StringString..classclass));;
MockitoMockito..verifyverify((emailemail,,	Mockito	Mockito..timestimes((11))))..sendMessagesendMessage((argumentargument..capturecapture(()),,	Matchers	Matchers..anyStringanyString(())));;
AssertAssert..assertThatassertThat((argumentargument..getValuegetValue(()),,	CoreMatchers	CoreMatchers..startsWithstartsWith(("Invoice:""Invoice:"))));;
E X A M P L E 
 A R G U M E N T 
 C A P T O R
	alexsotob		lordofthejars
EmailService	email	EmailService	email	==		newnew		EmailServiceEmailService(());;
EmailService	spyEmail	EmailService	spyEmail	==	Mockito	Mockito..spyspy((emailemail));;
InvoiceService	invoiceService	InvoiceService	invoiceService	==		newnew		InvoiceServiceInvoiceService((spyEmailspyEmail));;
invoiceServiceinvoiceService..sendsend(());;
MockitoMockito..verifyverify((spyEmailspyEmail,,	Mockito	Mockito..timestimes((11))))..sendMessagesendMessage((argumentargument..capturecapture(()),,	Matchers	Matchers..anyStringanyString(())));;
E X A M P L E 
 S P Y
	alexsotob		lordofthejars
testCompile	testCompile	(('org.powermock:powermock-module-junit4:1.6.4''org.powermock:powermock-module-junit4:1.6.4'))
testCompile	testCompile	(('org.powermock:powermock-api-mockito:1.6.4''org.powermock:powermock-api-mockito:1.6.4'))
D E P E N D E N C I E S
	alexsotob		lordofthejars
@@RunWithRunWith((PowerMockRunnerPowerMockRunner..classclass))
@@PrepareForTestPrepareForTest((StaticClassStaticClass..classclass))
publicpublic		classclass		MyTestMyTest		{{
}}
P R E P A R E 
 F O R 
 M O C K I N G
	alexsotob		lordofthejars
PowerMockitoPowerMockito..mockStaticmockStatic((StaticClassStaticClass..classclass));;
MockitoMockito..whenwhen((StaticClassStaticClass..getValuegetValue(())))..thenReturnthenReturn(("Hello""Hello"));;
SystemSystem..outout..printlnprintln((StaticClassStaticClass..getValuegetValue(())));;
PowerMockitoPowerMockito..verifyStaticverifyStatic(());;
M O C K 
 S T A T I C
	alexsotob		lordofthejars
PowerMockitoPowerMockito..whenNewwhenNew((MyClassMyClass..classclass))
																												..withNoArgumentswithNoArguments(())
																												..thenThrowthenThrow((newnew		IOExceptionIOException(("error	message""error	message"))));;
																												
X	x	X	x	==		newnew		XX(());;
xx..createMyClasscreateMyClass(());;
PowerMockitoPowerMockito..verifyNewverifyNew((MyClassMyClass..classclass))..withNoArgumentswithNoArguments(());;
M O C K 
 C O N S T R U C T O R
	alexsotob		lordofthejars
Calculator	calculator	Calculator	calculator	==	PowerMockito	PowerMockito..spyspy((newnew		CalculatorCalculator(())));;
PowerMockitoPowerMockito..doReturndoReturn((truetrue))..whenwhen((calculatorcalculator,,		"isCalculated""isCalculated"));;
SystemSystem..outout..printlnprintln((calculatorcalculator..calculatecalculate(())));;
PowerMockitoPowerMockito..verifyPrivateverifyPrivate((calculatorcalculator))..invokeinvoke(("isCalculated""isCalculated"));;
P R I V A T E 
 M E T H O D
	alexsotob		lordofthejars
All	that	Glitters	is	not	Gold
B E 
 A W A R E
	alexsotob		lordofthejars
ifif		((SystemSystem..currentTimeMilliscurrentTimeMillis(())		>>	pojo	pojo..getStartDategetStartDate(())		++	expiration	expiration))		{{
}}
E X A M P L E 
 O F 
 S Y S T E M
	alexsotob		lordofthejars
javajava..timetime..Clock	clockClock	clock;;
publicpublic		voidvoid		XX(())		{{
				ifif		((eventDateeventDate..isBeforeisBefore((LocalDateLocalDate..nownow((clockclock))))		{{
				}}
}}
J A V A 
 8
	alexsotob		lordofthejars
TimeResolution	clockTimeResolution	clock;;
publicpublic		voidvoid		XX(())		{{
				ifif		((clockclock..nownow(())		>>	pojo	pojo..getStartDategetStartDate(())		++	expiration	expiration))		{{
				}}
}}
J A V A
	alexsotob		lordofthejars
S T U B S
	alexsotob		lordofthejars
S T U B S
Canned
answers
to
calls
	alexsotob		lordofthejars
S T U B S
Canned
answers
to
calls
State
Verification
	alexsotob		lordofthejars
publicpublic		classclass		EmailServiceStubEmailServiceStub		implementsimplements		EmailServiceEmailService		{{
				privateprivate	List	emails		List	emails	==		newnew		ArrayListArrayList<<>>(());;
				
				publicpublic		voidvoid		sendMessagesendMessage((String	subjectString	subject,,	String	body	String	body))		{{
								thisthis..emailsemails..addadd((newnew		EmailEmail((subjectsubject,,	body	body))));;
				}}
				
				publicpublic	String		String	receiveBodyMessagesWithSubjectreceiveBodyMessagesWithSubject((String	subjectString	subject))		{{
								//	...//	...
				}}
}}
E M A I L 
 S E R V I C E
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
Easy
to
write
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
Easy
to
write
Versatile
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
Easy
to
write
Versatile
Reimplementing
Business
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
Easy
to
write
Versatile
Reimplementing
Business
Logic
is
outside
test
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Fast
Easy
to
write
Versatile
Reimplementing
Business
Logic
is
outside
test
State
	alexsotob		lordofthejars
	alexsotob		lordofthejars
@Rule@Rule
publicpublic	WireMockRule	wireMockRule		WireMockRule	wireMockRule	==		newnew		WireMockRuleWireMockRule((80898089));;
stubForstubFor((getget((urlEqualTourlEqualTo(("/planets/""/planets/"))))
								..willReturnwillReturn((aResponseaResponse(())
																								..withHeaderwithHeader(("Content-Type""Content-Type",,		"application/json""application/json"))
																								..withBodywithBody((FilesFiles..readAllBytesreadAllBytes((configFileconfigFile..toPathtoPath(())))))))
));;
clientclient..targettarget(("http://localhost:8089/""http://localhost:8089/"))..pathpath(("planets/""planets/"));;
W I R E M O C K
	alexsotob		lordofthejars
F A K E S
	alexsotob		lordofthejars
F A K E S
Working
implementations
	alexsotob		lordofthejars
F A K E S
Working
implementations
With
shortcuts
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Almost
real
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Almost
real
Test
full
stack
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Almost
real
Test
full
stack
Slow
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Almost
real
Test
full
stack
Slow
Learn
New
Tech
	alexsotob		lordofthejars
T H E 
 G O O D 
 A N D 
T H E 
 B A D
Almost
real
Test
full
stack
Slow
Learn
New
Tech
Different
Behaviour
	alexsotob		lordofthejars
M O C K I N G 
 2 . 0
	alexsotob		lordofthejars
	alexsotob		lordofthejars
testCompile	testCompile	(('org.jboss.byteman:byteman-bmunit:3.0.3''org.jboss.byteman:byteman-bmunit:3.0.3'))		{{
		exclude	group		exclude	group::		'org.testng''org.testng'
}}
B Y T E M A N
	alexsotob		lordofthejars
publicpublic		WebWriterWebWriter((String	filenameString	filename))		{{
				thisthis..filename	filename	==	filename	filename;;
				
}}
publicpublic	PrintStream		PrintStream	openFileopenFile(())		{{
		File	file			File	file	==		newnew		FileFile((filenamefilename));;
				trytry		{{
				FileOutputStream	fos					FileOutputStream	fos	==		newnew		FileOutputStreamFileOutputStream((filefile));;
				PrintStream	ps					PrintStream	ps	==		newnew		PrintStreamPrintStream((fosfos,,		truetrue));;
								returnreturn	ps	ps;;
				}}		catchcatch		((FileNotFoundExceptionFileNotFoundException	e	e))		{{
				System				System..outout..printlnprintln(("Unable	to	open	file	""Unable	to	open	file	"		++	file	file..getNamegetName(())));;
				System				System..outout..printlnprintln((ee));;
								returnreturn		nullnull;;
				}}
}}
B Y T E M A N
	alexsotob		lordofthejars
@@RunWithRunWith((orgorg..jbossjboss..bytemanbyteman..contribcontrib..bmunitbmunit..BMUnitRunnerBMUnitRunner..classclass))
publicpublic		classclass		TestTest		{{
		@Test		@Test
		@		@BMRuleBMRule((name	name	==		"handle	file	not	found""handle	file	not	found",,
				targetClass					targetClass	==		"java.io.FileOutputStream""java.io.FileOutputStream",,
				targetMethod					targetMethod	==		"(File)""(File)",,
				action					action	==		"throw	new	FileNotFoundException(	"Ha	ha	Byteman	fooled	you	again!"	)""throw	new	FileNotFoundException(	"Ha	ha	Byteman	fooled	you	again!"	)"
				))
				publicpublic		voidvoid		handleFileNotFoundhandleFileNotFound(())	throws	FileNotFoundException		throws	FileNotFoundException	{{
				System				System..outout..printlnprintln(("--------	handleFileNotFound	---------""--------	handleFileNotFound	---------"));;
				WebWriter	writer					WebWriter	writer	==		newnew		WebWriterWebWriter(("foo.html""foo.html",,		"Andrew""Andrew"));;
				PrintStream	ps					PrintStream	ps	==	writer	writer..openFileopenFile(());;
				Assert				Assert..assertTrueassertTrue((ps	ps	====		nullnull));;
				System				System..outout..printlnprintln(("--------	handleFileNotFound	---------n""--------	handleFileNotFound	---------n"));;
				}}
}}
B Y T E M A N
	alexsotob		lordofthejars
D O C K E R 
 A S 
T E S T I N G 
 T O O L
	alexsotob		lordofthejars
	alexsotob		lordofthejars
Pipeline	Plugin
C O N T I N U O U S
I N T E G R A T I O N 
 A S 
 C O D E
	alexsotob		lordofthejars
	alexsotob		lordofthejars
stage	stage	'compileAndUnit''compileAndUnit'
node	node	{{
								git	branch								git	branch::		'master''master',,	url	url::		'https://github.com/lordofthejars/starwars.git''https://github.com/lordofthejars/starwars.git'
								gradle									gradle	'clean	test''clean	test'
								stash	excludes								stash	excludes::		'build/''build/',,	includes	includes::		'**''**',,	name	name::		'source''source'
								stash	includes								stash	includes::	'build	'build//jacocojacoco/*.exec',	name:	'unitCodeCoverage'/*.exec',	name:	'unitCodeCoverage'
								step([$class:	'JUnitResultArchiver',	testResults:	'**/								step([$class:	'JUnitResultArchiver',	testResults:	'**/buildbuild//testtest--resultsresults//**..xml'xml']]))
}}
stage	stage	'codeQuality''codeQuality'
parallel	parallel	'pmd''pmd'		::		{{
				node					node	{{
								unstash									unstash	'source''source'
								gradle									gradle	'pmdMain''pmdMain'
																stepstep(([[$$classclass::		'PmdPublisher''PmdPublisher',,	pattern	pattern::		'build/reports/pmd/*.xml''build/reports/pmd/*.xml']]))
								}}
}},,		'jacoco''jacoco'::		{{
				node					node	{{
								unstash									unstash	'source''source'
								unstash									unstash	'unitCodeCoverage''unitCodeCoverage'
								gradle									gradle	'jacocoTestReport''jacocoTestReport'
								}}
}}
J E N K I N S F I L E 
 ( 1 / 2 )
	alexsotob		lordofthejars
stage	stage	'assemble-binaries''assemble-binaries'
nodenode(('linux''linux'))		{{
				unstash					unstash	'source''source'
								withEnvwithEnv(([["SOURCE_BUILD_NUMBER=${env.BUILD_NUMBER}""SOURCE_BUILD_NUMBER=${env.BUILD_NUMBER}"]]))		{{
								gradle									gradle	'assemble''assemble'
								}}
}}
input	messageinput	message::		"Deploy	Application	to	QA	?""Deploy	Application	to	QA	?"
stage	namestage	name::		'Deploy	to	QA''Deploy	to	QA',,	concurrency	concurrency::		11
node	node	{{
				echo					echo	"Application	Deployed	to	QA.""Application	Deployed	to	QA."
}}
J E N K I N S F I L E 
 ( 2 / 2 )
	alexsotob		lordofthejars
	alexsotob		lordofthejars
L E T ' S 
 W I N D 

D O W N
	alexsotob		lordofthejars
W H A T 
 Y O U 
 H A V E 
 S E E N
Unit
tests
should
be
FIRST
	alexsotob		lordofthejars
W H A T 
 Y O U 
 H A V E 
 S E E N
Unit
tests
should
be
FIRST
Mock,
Stubs
and
Fakes
	alexsotob		lordofthejars
W H A T 
 Y O U 
 H A V E 
 S E E N
Unit
tests
should
be
FIRST
Mock,
Stubs
and
Fakes
PowerMock
as
Design
Warning
	alexsotob		lordofthejars
W H A T 
 Y O U 
 H A V E 
 S E E N
Unit
tests
should
be
FIRST
Mock,
Stubs
and
Fakes
PowerMock
as
Design
Warning
Docker
as
Testing
Tool
	alexsotob		lordofthejars
W H A T 
 Y O U 
 H A V E 
 S E E N
Unit
tests
should
be
FIRST
Mock,
Stubs
and
Fakes
PowerMock
as
Design
Warning
Docker
as
Testing
Tool
Jenkins
is
not
static
anymore
	alexsotob		lordofthejars
	alexsotob		lordofthejars
Q U E S T I O N S
	alexsotob		lordofthejars

http://lordofthejars.github.io/mock-stub-fake/

asotobu@gmail.com
	alexsotob		lordofthejars
H T T P S : / / G I T H U B . C O M / L O R D O F T H E J A R S / S T A R W A R S
H T T P : / / S I T E . M O C K I T O . O R G /
H T T P S : / / G I T H U B . C O M / J A Y W A Y / P O W E R M O C K
H T T P : / / W I R E M O C K . O R G /
H T T P : / / A R Q U I L L I A N . O R G /
H T T P : / / B Y T E M A N . J B O S S . O R G /
H T T P S : / / G I T H U B . C O M / J E N K I N S C I / W O R K F L O W - P L U G I N

Mais conteúdo relacionado

Mais procurados

JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys PROIDEA
 
Ankara jug mayıs 2013 sunumu
Ankara jug mayıs 2013 sunumuAnkara jug mayıs 2013 sunumu
Ankara jug mayıs 2013 sunumuAnkara JUG
 
Baremetal deployment scale
Baremetal deployment scaleBaremetal deployment scale
Baremetal deployment scalebaremetal
 
Baremetal deployment
Baremetal deploymentBaremetal deployment
Baremetal deploymentbaremetal
 
GitGot: The Swiss Army Chainsaw of Git Repo Management
GitGot: The Swiss Army Chainsaw of Git Repo ManagementGitGot: The Swiss Army Chainsaw of Git Repo Management
GitGot: The Swiss Army Chainsaw of Git Repo ManagementJohn Anderson
 
Effective codereview | Dave Liddament | CODEiD
Effective codereview | Dave Liddament | CODEiDEffective codereview | Dave Liddament | CODEiD
Effective codereview | Dave Liddament | CODEiDCODEiD PHP Community
 
My Notes from https://www.codeschool.com/courses/git-real
My Notes from  https://www.codeschool.com/courses/git-realMy Notes from  https://www.codeschool.com/courses/git-real
My Notes from https://www.codeschool.com/courses/git-realEneldo Serrata
 
Graduating to Jenkins CI for Ruby(-on-Rails) Teams
Graduating to Jenkins CI for Ruby(-on-Rails) TeamsGraduating to Jenkins CI for Ruby(-on-Rails) Teams
Graduating to Jenkins CI for Ruby(-on-Rails) TeamsDaniel Doubrovkine
 
The Bash Dashboard (Or: How to Use Bash for Data Analysis)
The Bash Dashboard (Or: How to Use Bash for Data Analysis)The Bash Dashboard (Or: How to Use Bash for Data Analysis)
The Bash Dashboard (Or: How to Use Bash for Data Analysis)Bram Adams
 
JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski
JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski
JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski PROIDEA
 
Monitoring using Sensu
Monitoring using SensuMonitoring using Sensu
Monitoring using Sensuripienaar
 
Practical git for developers
Practical git for developersPractical git for developers
Practical git for developersWim Godden
 
GoCracow #5 Bartlomiej klimczak - GoBDD
GoCracow #5 Bartlomiej klimczak - GoBDDGoCracow #5 Bartlomiej klimczak - GoBDD
GoCracow #5 Bartlomiej klimczak - GoBDDBartłomiej Kiełbasa
 
Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트
Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트 Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트
Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트 Channy Yun
 

Mais procurados (20)

JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
 
Ankara jug mayıs 2013 sunumu
Ankara jug mayıs 2013 sunumuAnkara jug mayıs 2013 sunumu
Ankara jug mayıs 2013 sunumu
 
Git::Hooks
Git::HooksGit::Hooks
Git::Hooks
 
rioinfo2012
rioinfo2012rioinfo2012
rioinfo2012
 
Baremetal deployment scale
Baremetal deployment scaleBaremetal deployment scale
Baremetal deployment scale
 
Baremetal deployment
Baremetal deploymentBaremetal deployment
Baremetal deployment
 
GitGot: The Swiss Army Chainsaw of Git Repo Management
GitGot: The Swiss Army Chainsaw of Git Repo ManagementGitGot: The Swiss Army Chainsaw of Git Repo Management
GitGot: The Swiss Army Chainsaw of Git Repo Management
 
Effective codereview | Dave Liddament | CODEiD
Effective codereview | Dave Liddament | CODEiDEffective codereview | Dave Liddament | CODEiD
Effective codereview | Dave Liddament | CODEiD
 
Meteor WWNRW Intro
Meteor WWNRW IntroMeteor WWNRW Intro
Meteor WWNRW Intro
 
My Notes from https://www.codeschool.com/courses/git-real
My Notes from  https://www.codeschool.com/courses/git-realMy Notes from  https://www.codeschool.com/courses/git-real
My Notes from https://www.codeschool.com/courses/git-real
 
Loading...git
Loading...gitLoading...git
Loading...git
 
Graduating to Jenkins CI for Ruby(-on-Rails) Teams
Graduating to Jenkins CI for Ruby(-on-Rails) TeamsGraduating to Jenkins CI for Ruby(-on-Rails) Teams
Graduating to Jenkins CI for Ruby(-on-Rails) Teams
 
The Bash Dashboard (Or: How to Use Bash for Data Analysis)
The Bash Dashboard (Or: How to Use Bash for Data Analysis)The Bash Dashboard (Or: How to Use Bash for Data Analysis)
The Bash Dashboard (Or: How to Use Bash for Data Analysis)
 
JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski
JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski
JDO 2019: Serverless Hype Driven Development - Grzegorz Piotrowski
 
Git SCM
Git SCMGit SCM
Git SCM
 
Cooking with Chef
Cooking with ChefCooking with Chef
Cooking with Chef
 
Monitoring using Sensu
Monitoring using SensuMonitoring using Sensu
Monitoring using Sensu
 
Practical git for developers
Practical git for developersPractical git for developers
Practical git for developers
 
GoCracow #5 Bartlomiej klimczak - GoBDD
GoCracow #5 Bartlomiej klimczak - GoBDDGoCracow #5 Bartlomiej klimczak - GoBDD
GoCracow #5 Bartlomiej klimczak - GoBDD
 
Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트
Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트 Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트
Chaos Engineering on Microservices - 윤석찬, AWS 테크에반젤리스트
 

Semelhante a Mocks, Stubs and Fakes. ¿What Else?

iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기Wanbok Choi
 
Dr Strangler and Mr Hype - Strangler pattern w praktyce
Dr Strangler and Mr Hype - Strangler pattern w praktyceDr Strangler and Mr Hype - Strangler pattern w praktyce
Dr Strangler and Mr Hype - Strangler pattern w praktyceMichał Kurzeja
 
Hello, Is That FreeSWITCH? Then We're Coming to Check You!
Hello, Is That FreeSWITCH? Then We're Coming to Check You!Hello, Is That FreeSWITCH? Then We're Coming to Check You!
Hello, Is That FreeSWITCH? Then We're Coming to Check You!PVS-Studio
 
Aaron Bedra - Effective Software Security Teams
Aaron Bedra - Effective Software Security TeamsAaron Bedra - Effective Software Security Teams
Aaron Bedra - Effective Software Security Teamscentralohioissa
 
PostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit TestPostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit TestAndrea Adami
 
A Journey with React
A Journey with ReactA Journey with React
A Journey with ReactFITC
 
Elixir Elevated: The Ups and Downs of OTP at ElixirConf2014
Elixir Elevated: The Ups and Downs of OTP at ElixirConf2014Elixir Elevated: The Ups and Downs of OTP at ElixirConf2014
Elixir Elevated: The Ups and Downs of OTP at ElixirConf2014Greg Vaughn
 
Controlling Technical Debt with Continuous Delivery
Controlling Technical Debt with Continuous DeliveryControlling Technical Debt with Continuous Delivery
Controlling Technical Debt with Continuous Deliverywalkmod
 
From Node.js to Design Patterns - BuildPiper
From Node.js to Design Patterns - BuildPiperFrom Node.js to Design Patterns - BuildPiper
From Node.js to Design Patterns - BuildPiperLuciano Mammino
 
Mattia Manzati - Real-World MobX Project Architecture - Codemotion Rome 2019
Mattia Manzati - Real-World MobX Project Architecture - Codemotion Rome 2019Mattia Manzati - Real-World MobX Project Architecture - Codemotion Rome 2019
Mattia Manzati - Real-World MobX Project Architecture - Codemotion Rome 2019Codemotion
 
Formal Verification of Transactional Interaction Contract
Formal Verification of Transactional Interaction ContractFormal Verification of Transactional Interaction Contract
Formal Verification of Transactional Interaction ContractGera Shegalov
 
JSARToolKit / LiveChromaKey / LivePointers - Next gen of AR
JSARToolKit / LiveChromaKey / LivePointers - Next gen of ARJSARToolKit / LiveChromaKey / LivePointers - Next gen of AR
JSARToolKit / LiveChromaKey / LivePointers - Next gen of ARYusuke Kawasaki
 
Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019Michał Kurzeja
 
Risking Everything with Akka Streams
Risking Everything with Akka StreamsRisking Everything with Akka Streams
Risking Everything with Akka Streamsjohofer
 
Scala as a Declarative Language
Scala as a Declarative LanguageScala as a Declarative Language
Scala as a Declarative Languagevsssuresh
 
Programming Languages and their influence in Thinking
Programming Languages and their influence in ThinkingProgramming Languages and their influence in Thinking
Programming Languages and their influence in ThinkingHernan Wilkinson
 

Semelhante a Mocks, Stubs and Fakes. ¿What Else? (20)

Logging in code
Logging in codeLogging in code
Logging in code
 
iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기
 
CQRS + ES. Más allá del hexágono
CQRS + ES. Más allá del hexágonoCQRS + ES. Más allá del hexágono
CQRS + ES. Más allá del hexágono
 
Dr Strangler and Mr Hype - Strangler pattern w praktyce
Dr Strangler and Mr Hype - Strangler pattern w praktyceDr Strangler and Mr Hype - Strangler pattern w praktyce
Dr Strangler and Mr Hype - Strangler pattern w praktyce
 
Hello, Is That FreeSWITCH? Then We're Coming to Check You!
Hello, Is That FreeSWITCH? Then We're Coming to Check You!Hello, Is That FreeSWITCH? Then We're Coming to Check You!
Hello, Is That FreeSWITCH? Then We're Coming to Check You!
 
Aaron Bedra - Effective Software Security Teams
Aaron Bedra - Effective Software Security TeamsAaron Bedra - Effective Software Security Teams
Aaron Bedra - Effective Software Security Teams
 
PostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit TestPostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit Test
 
A Journey with React
A Journey with ReactA Journey with React
A Journey with React
 
Elixir Elevated: The Ups and Downs of OTP at ElixirConf2014
Elixir Elevated: The Ups and Downs of OTP at ElixirConf2014Elixir Elevated: The Ups and Downs of OTP at ElixirConf2014
Elixir Elevated: The Ups and Downs of OTP at ElixirConf2014
 
Controlling Technical Debt with Continuous Delivery
Controlling Technical Debt with Continuous DeliveryControlling Technical Debt with Continuous Delivery
Controlling Technical Debt with Continuous Delivery
 
From Node.js to Design Patterns - BuildPiper
From Node.js to Design Patterns - BuildPiperFrom Node.js to Design Patterns - BuildPiper
From Node.js to Design Patterns - BuildPiper
 
Mattia Manzati - Real-World MobX Project Architecture - Codemotion Rome 2019
Mattia Manzati - Real-World MobX Project Architecture - Codemotion Rome 2019Mattia Manzati - Real-World MobX Project Architecture - Codemotion Rome 2019
Mattia Manzati - Real-World MobX Project Architecture - Codemotion Rome 2019
 
Formal Verification of Transactional Interaction Contract
Formal Verification of Transactional Interaction ContractFormal Verification of Transactional Interaction Contract
Formal Verification of Transactional Interaction Contract
 
JSARToolKit / LiveChromaKey / LivePointers - Next gen of AR
JSARToolKit / LiveChromaKey / LivePointers - Next gen of ARJSARToolKit / LiveChromaKey / LivePointers - Next gen of AR
JSARToolKit / LiveChromaKey / LivePointers - Next gen of AR
 
Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019
 
Risking Everything with Akka Streams
Risking Everything with Akka StreamsRisking Everything with Akka Streams
Risking Everything with Akka Streams
 
Kotlin Coroutines and Rx
Kotlin Coroutines and RxKotlin Coroutines and Rx
Kotlin Coroutines and Rx
 
Scala as a Declarative Language
Scala as a Declarative LanguageScala as a Declarative Language
Scala as a Declarative Language
 
Programming Languages and their influence in Thinking
Programming Languages and their influence in ThinkingProgramming Languages and their influence in Thinking
Programming Languages and their influence in Thinking
 
JavaScript 101
JavaScript 101JavaScript 101
JavaScript 101
 

Mais de Alex Soto

Kubernetes Native Java
Kubernetes Native JavaKubernetes Native Java
Kubernetes Native JavaAlex Soto
 
Reactive Programming for Real Use Cases
Reactive Programming for Real Use CasesReactive Programming for Real Use Cases
Reactive Programming for Real Use CasesAlex Soto
 
Chaos Engineering Kubernetes
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering KubernetesAlex Soto
 
Chaos Engineering Kubernetes
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering KubernetesAlex Soto
 
Microservices testing and automation
Microservices testing and automationMicroservices testing and automation
Microservices testing and automationAlex Soto
 
Testing in Production: From DevTestOops to DevTestOps
Testing in Production: From DevTestOops to DevTestOpsTesting in Production: From DevTestOops to DevTestOps
Testing in Production: From DevTestOops to DevTestOpsAlex Soto
 
Supersonic Subatomic Java
Supersonic Subatomic JavaSupersonic Subatomic Java
Supersonic Subatomic JavaAlex Soto
 
From DevTestOops to DevTestOps
From DevTestOops to DevTestOpsFrom DevTestOops to DevTestOps
From DevTestOops to DevTestOpsAlex Soto
 
Istio service mesh & pragmatic microservices architecture
Istio service mesh & pragmatic microservices architectureIstio service mesh & pragmatic microservices architecture
Istio service mesh & pragmatic microservices architectureAlex Soto
 
Zero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraZero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraAlex Soto
 
Service Mesh Patterns
Service Mesh PatternsService Mesh Patterns
Service Mesh PatternsAlex Soto
 
Supersonic, Subatomic Java
Supersonic, Subatomic JavaSupersonic, Subatomic Java
Supersonic, Subatomic JavaAlex Soto
 
Zero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraZero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraAlex Soto
 
Long Live and Prosper To Monolith
Long Live and Prosper To MonolithLong Live and Prosper To Monolith
Long Live and Prosper To MonolithAlex Soto
 
Sail in the cloud - An intro to Istio commit
Sail in the cloud - An intro to Istio commitSail in the cloud - An intro to Istio commit
Sail in the cloud - An intro to Istio commitAlex Soto
 
KubeBoot - Spring Boot deployment on Kubernetes
KubeBoot - Spring Boot deployment on KubernetesKubeBoot - Spring Boot deployment on Kubernetes
KubeBoot - Spring Boot deployment on KubernetesAlex Soto
 
Sail in the Cloud - An intro to Istio
Sail in the Cloud  - An intro to IstioSail in the Cloud  - An intro to Istio
Sail in the Cloud - An intro to IstioAlex Soto
 
Testing XXIst Century
Testing XXIst CenturyTesting XXIst Century
Testing XXIst CenturyAlex Soto
 
Arquillian Constellation
Arquillian ConstellationArquillian Constellation
Arquillian ConstellationAlex Soto
 
Testing for Unicorns
Testing for UnicornsTesting for Unicorns
Testing for UnicornsAlex Soto
 

Mais de Alex Soto (20)

Kubernetes Native Java
Kubernetes Native JavaKubernetes Native Java
Kubernetes Native Java
 
Reactive Programming for Real Use Cases
Reactive Programming for Real Use CasesReactive Programming for Real Use Cases
Reactive Programming for Real Use Cases
 
Chaos Engineering Kubernetes
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering Kubernetes
 
Chaos Engineering Kubernetes
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering Kubernetes
 
Microservices testing and automation
Microservices testing and automationMicroservices testing and automation
Microservices testing and automation
 
Testing in Production: From DevTestOops to DevTestOps
Testing in Production: From DevTestOops to DevTestOpsTesting in Production: From DevTestOops to DevTestOps
Testing in Production: From DevTestOops to DevTestOps
 
Supersonic Subatomic Java
Supersonic Subatomic JavaSupersonic Subatomic Java
Supersonic Subatomic Java
 
From DevTestOops to DevTestOps
From DevTestOops to DevTestOpsFrom DevTestOops to DevTestOps
From DevTestOops to DevTestOps
 
Istio service mesh & pragmatic microservices architecture
Istio service mesh & pragmatic microservices architectureIstio service mesh & pragmatic microservices architecture
Istio service mesh & pragmatic microservices architecture
 
Zero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraZero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices era
 
Service Mesh Patterns
Service Mesh PatternsService Mesh Patterns
Service Mesh Patterns
 
Supersonic, Subatomic Java
Supersonic, Subatomic JavaSupersonic, Subatomic Java
Supersonic, Subatomic Java
 
Zero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraZero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices era
 
Long Live and Prosper To Monolith
Long Live and Prosper To MonolithLong Live and Prosper To Monolith
Long Live and Prosper To Monolith
 
Sail in the cloud - An intro to Istio commit
Sail in the cloud - An intro to Istio commitSail in the cloud - An intro to Istio commit
Sail in the cloud - An intro to Istio commit
 
KubeBoot - Spring Boot deployment on Kubernetes
KubeBoot - Spring Boot deployment on KubernetesKubeBoot - Spring Boot deployment on Kubernetes
KubeBoot - Spring Boot deployment on Kubernetes
 
Sail in the Cloud - An intro to Istio
Sail in the Cloud  - An intro to IstioSail in the Cloud  - An intro to Istio
Sail in the Cloud - An intro to Istio
 
Testing XXIst Century
Testing XXIst CenturyTesting XXIst Century
Testing XXIst Century
 
Arquillian Constellation
Arquillian ConstellationArquillian Constellation
Arquillian Constellation
 
Testing for Unicorns
Testing for UnicornsTesting for Unicorns
Testing for Unicorns
 

Último

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 

Último (20)

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 

Mocks, Stubs and Fakes. ¿What Else?