SlideShare a Scribd company logo
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

More Related Content

What's hot

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
 
Git::Hooks
Git::HooksGit::Hooks
Git::Hooks
Mikko Koivunalho
 
rioinfo2012
rioinfo2012rioinfo2012
rioinfo2012
Juan Lopes
 
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 Management
John Anderson
 
Effective codereview | Dave Liddament | CODEiD
Effective codereview | Dave Liddament | CODEiDEffective codereview | Dave Liddament | CODEiD
Effective codereview | Dave Liddament | CODEiD
CODEiD PHP Community
 
Meteor WWNRW Intro
Meteor WWNRW IntroMeteor WWNRW Intro
Meteor WWNRW Intro
Stephan Hochhaus
 
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
Eneldo 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) Teams
Daniel 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
 
Git SCM
Git SCMGit SCM
Cooking with Chef
Cooking with ChefCooking with Chef
Cooking with Chef
Orlando_Ruby_Users_Group
 
Monitoring using Sensu
Monitoring using SensuMonitoring using Sensu
Monitoring using Sensu
ripienaar
 
Practical git for developers
Practical git for developersPractical git for developers
Practical git for developers
Wim Godden
 
GoCracow #5 Bartlomiej klimczak - GoBDD
GoCracow #5 Bartlomiej klimczak - GoBDDGoCracow #5 Bartlomiej klimczak - GoBDD
GoCracow #5 Bartlomiej klimczak - GoBDD
Bartł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
 

What's hot (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 테크에반젤리스트
 

Similar to Mocks, Stubs and Fakes. ¿What Else?

Logging in code
Logging in codeLogging in code
Logging in code
Jannarong Wadthong
 
iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기
Wanbok Choi
 
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
Manuel López Torrent
 
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
Michał 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 Teams
centralohioissa
 
PostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit TestPostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit Test
Andrea Adami
 
A Journey with React
A Journey with ReactA Journey with React
A Journey with React
FITC
 
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
Greg Vaughn
 
Controlling Technical Debt with Continuous Delivery
Controlling Technical Debt with Continuous DeliveryControlling Technical Debt with Continuous Delivery
Controlling Technical Debt with Continuous Delivery
walkmod
 
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
Luciano 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 2019
Codemotion
 
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 AR
Yusuke 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 2019
Michał Kurzeja
 
Risking Everything with Akka Streams
Risking Everything with Akka StreamsRisking Everything with Akka Streams
Risking Everything with Akka Streams
johofer
 
Kotlin Coroutines and Rx
Kotlin Coroutines and RxKotlin Coroutines and Rx
Kotlin Coroutines and Rx
Shaul Rosenzwieg
 
Scala as a Declarative Language
Scala as a Declarative LanguageScala as a Declarative Language
Scala as a Declarative Language
vsssuresh
 
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
Hernan Wilkinson
 
JavaScript 101
JavaScript 101JavaScript 101
JavaScript 101
Mindy McAdams
 

Similar to 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
 

More from Alex Soto

Kubernetes Native Java
Kubernetes Native JavaKubernetes Native Java
Kubernetes Native Java
Alex Soto
 
Reactive Programming for Real Use Cases
Reactive Programming for Real Use CasesReactive Programming for Real Use Cases
Reactive Programming for Real Use Cases
Alex Soto
 
Chaos Engineering Kubernetes
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering Kubernetes
Alex Soto
 
Chaos Engineering Kubernetes
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering Kubernetes
Alex Soto
 
Microservices testing and automation
Microservices testing and automationMicroservices testing and automation
Microservices testing and automation
Alex 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 DevTestOps
Alex Soto
 
Supersonic Subatomic Java
Supersonic Subatomic JavaSupersonic Subatomic Java
Supersonic Subatomic Java
Alex Soto
 
From DevTestOops to DevTestOps
From DevTestOops to DevTestOpsFrom DevTestOops to DevTestOps
From DevTestOops to DevTestOps
Alex Soto
 
Istio service mesh & pragmatic microservices architecture
Istio service mesh & pragmatic microservices architectureIstio service mesh & pragmatic microservices architecture
Istio service mesh & pragmatic microservices architecture
Alex Soto
 
Zero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraZero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices era
Alex Soto
 
Service Mesh Patterns
Service Mesh PatternsService Mesh Patterns
Service Mesh Patterns
Alex Soto
 
Supersonic, Subatomic Java
Supersonic, Subatomic JavaSupersonic, Subatomic Java
Supersonic, Subatomic Java
Alex Soto
 
Zero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraZero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices era
Alex Soto
 
Long Live and Prosper To Monolith
Long Live and Prosper To MonolithLong Live and Prosper To Monolith
Long Live and Prosper To Monolith
Alex 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 commit
Alex Soto
 
KubeBoot - Spring Boot deployment on Kubernetes
KubeBoot - Spring Boot deployment on KubernetesKubeBoot - Spring Boot deployment on Kubernetes
KubeBoot - Spring Boot deployment on Kubernetes
Alex 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 Istio
Alex Soto
 
Testing XXIst Century
Testing XXIst CenturyTesting XXIst Century
Testing XXIst Century
Alex Soto
 
Arquillian Constellation
Arquillian ConstellationArquillian Constellation
Arquillian Constellation
Alex Soto
 
Testing for Unicorns
Testing for UnicornsTesting for Unicorns
Testing for Unicorns
Alex Soto
 

More from 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
 

Recently uploaded

GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 

Recently uploaded (20)

GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 

Mocks, Stubs and Fakes. ¿What Else?