The document discusses unit testing concepts and techniques. It defines unit testing and differentiates it from integration testing. It covers core unit testing techniques like test doubles, stubs, and mocks. It also discusses practical tools for unit testing in Java like Mockito and PowerMock. Finally, it addresses common FAQs around unit testing and provides references for further reading.
It's about how to involve unit-testing into an existing application.
Unit-testing is never easy to be approached, there's some experience about how to begin within it.
This is an introduction to unit testing using various mocking frameworks. It covers why you should consider using a mocking framework, how to apply mocks in your unit testing, and a high level comparison of various tools for mocking/stub creation. The distinction between mocks and stubs is clearly defined.
It's about how to involve unit-testing into an existing application.
Unit-testing is never easy to be approached, there's some experience about how to begin within it.
This is an introduction to unit testing using various mocking frameworks. It covers why you should consider using a mocking framework, how to apply mocks in your unit testing, and a high level comparison of various tools for mocking/stub creation. The distinction between mocks and stubs is clearly defined.
Acceptance And Story Testing Patterns - By Charles BradleySynerzip
This webinar discusses best practices for creating Story Tests (aka Acceptance Tests).
Acceptance Testing, also known as Story Testing, is vital to achieve the Agile vision of “working software over comprehensive documentation.”
Read more at https://www.synerzip.com/webinar/acceptance-and-story-testing-patterns/
What needs to consider to write effective unit test cases. Common mistakes developer do and how to overcome those with some basic understanding of unit test case writing.
An introduction to unit testing using Visual Studio, C#, xUnit.net, and Moq. What it is, what is isn't, why we don't do it, how to design for testability, what to test, test driven development, unit testing frameworks, mocking libraries, how to get started.
There are many types of automatic tests, testing tools, libraries and approaches.
Automatic tests can save you a lot of stress but can also became a kind of a nightmare.
This presentation is an overview of what's available and how to use and not to use them to make them really useful.
Examples taken from PHP world. You might be surprised how many tools is available.
Creating testing tools to support developmentChema del Barco
This is a presentation I made for the Kraków Java User Group on test automation and how to solve the challenges around it to make it really useful for development teams. It contains some examples of how we are doing it at Akamai's Web department, and some based on my own experience.
Automation vs. intelligence - "follow me if you want to live"Viktor Slavchev
Have you ever heard the story that your job is automatable, that all the human testers will be replaced by machines or automated tests and you will lose your job? Or even worse, that machines and artificial intelligence will take over our craft and our life and we will be totally useless. Do you buy these? Are you afraid?
“Come with me, if you want to live” – this was the famous line that many members of the Human resistance in the Terminator franchise used, when offering their help in the war against Skynet.
So, come with me (and John Connor), and join the testing resistance to fight on the side of intellect against the evil machine army. I am willing to challenge the I part in AI on contest by focusing on few key topics:
Can we translate testing into machine language? Polymorphic and mimeomorphic actions – what are these?
Do we really know what are the benefits of human testing? What are human testers irreplaceable for?
Do we really have empirical evidence that computers are capable of doing professional testing? Do we have evidence of “intelligence” at all?
Last year at RTC ‘17 I was asked – “Is AI the answer to all test automation problems?”. My answer is “No, it’s not!”. And this talk is my explanation why.
Acceptance And Story Testing Patterns - By Charles BradleySynerzip
This webinar discusses best practices for creating Story Tests (aka Acceptance Tests).
Acceptance Testing, also known as Story Testing, is vital to achieve the Agile vision of “working software over comprehensive documentation.”
Read more at https://www.synerzip.com/webinar/acceptance-and-story-testing-patterns/
What needs to consider to write effective unit test cases. Common mistakes developer do and how to overcome those with some basic understanding of unit test case writing.
An introduction to unit testing using Visual Studio, C#, xUnit.net, and Moq. What it is, what is isn't, why we don't do it, how to design for testability, what to test, test driven development, unit testing frameworks, mocking libraries, how to get started.
There are many types of automatic tests, testing tools, libraries and approaches.
Automatic tests can save you a lot of stress but can also became a kind of a nightmare.
This presentation is an overview of what's available and how to use and not to use them to make them really useful.
Examples taken from PHP world. You might be surprised how many tools is available.
Creating testing tools to support developmentChema del Barco
This is a presentation I made for the Kraków Java User Group on test automation and how to solve the challenges around it to make it really useful for development teams. It contains some examples of how we are doing it at Akamai's Web department, and some based on my own experience.
Automation vs. intelligence - "follow me if you want to live"Viktor Slavchev
Have you ever heard the story that your job is automatable, that all the human testers will be replaced by machines or automated tests and you will lose your job? Or even worse, that machines and artificial intelligence will take over our craft and our life and we will be totally useless. Do you buy these? Are you afraid?
“Come with me, if you want to live” – this was the famous line that many members of the Human resistance in the Terminator franchise used, when offering their help in the war against Skynet.
So, come with me (and John Connor), and join the testing resistance to fight on the side of intellect against the evil machine army. I am willing to challenge the I part in AI on contest by focusing on few key topics:
Can we translate testing into machine language? Polymorphic and mimeomorphic actions – what are these?
Do we really know what are the benefits of human testing? What are human testers irreplaceable for?
Do we really have empirical evidence that computers are capable of doing professional testing? Do we have evidence of “intelligence” at all?
Last year at RTC ‘17 I was asked – “Is AI the answer to all test automation problems?”. My answer is “No, it’s not!”. And this talk is my explanation why.
Software testing
Developers Belief on Software Testing
Developers Responsibility for testing
Test writing methods
State based testing
Behavioural/interaction based testing
Writing a Testable Code
Flaw 1 - Constructor does Real Work
Flaw 2 - API lies about it's real dependencies
Flaw 3 - Brittle Global State & Singletons
Testing Frameworks and tools for Java...
Mockito and PowerMock...
Testing Models
Stubs Based Testing Model
Mocked Objects Based Testing Model
JUit 4.+ and TestNG
https://www.adroitlogic.com
https://developer.adroitlogic.com
Why Your Selenium Tests are so Dang Brittle, and What to Do About ItJay Aho
If you are writing automated through-the-GUI tests for a web application, you are in danger of creating tests that are more expensive to maintain than they are worth. With well-factored Selenium RC tests running in Junit or TestNG, you can keep your abstraction layers or "Lingos" -- small bounded bits of slang for discrete parts of the object model -- separate, thereby reducing the maintenance costs of your tests, and improving your sanity.
This presentation is from a technical track webinar on:
•How and why automated web app code gets so dang brittle
•Why the expressiveness, readability, and fluency of your test code is so important to its maintenance cost
•Some basic, useful OOD patterns for writing very expressive web app tests using Selenium RC, in Java and in C#/.NET
•Some useful OOD principles to guide your design decisions, like keeping modules small, the SRP, DRY, "Lingos", and "Lingual Design"
•Some OOD principles worth violating, frequently, when writing automated test code, because it's just very different from application code
•How and why to prefer element locators like Id and Value attributes to xPath; how to keep xPath least brittle
•An introduction to Domain Specific Languages (DSLs) built on top of Selenium RC, using FitNesse
•An introduction to "fluent" Selenium RC testing using Scala
Prerequisites include experience with Java or C#, and ideally some basic OOD familiarity (inheritance, composition, encapsulation, polymorphism).
To view or download a replay of the event (WMV format), which included live demonstrations, please visit: http://www.pillartechnology.com/content/webinardetail/id/16
There's no shortage of cowboy code-slingers out there in the PHP range. Heck, I used to be one...! You know the types: buckin' bronco projects and spaghetti western logic, firing their guns as many times as they've got bullets... There's a better way, my friends, and it's not just for the yeller-bellied and quail-hearted. Sit by the fire a spell and learn a little about Unit Testing with PHPUnit (or any of them xUnits): what it is, how to do it, and how to sell it to your boss...! 'Cause we all know every cowpoke answers to the man in the big house, after all.
Making the Unstable Stable - An Intro To TestingCameron Presley
Does it always seem like bugs you've fixed keep coming back? Does it seem like when you fix one bug, two more crop up? What if I were to tell you there's a better way?
In this presentation, we're going to explore how to make a code base more stable by using automated testing. To start, we'll explore the business case of why you should be writing tests by looking at industry studies and personal experience. From there, we'll look at the fundamentals of testing by talking about the pros/cons of unit, integration, and UI testing. Finally, we'll look at some resources to learn how to write tests.
Intended for developers who are new to testing, by the end of this presentation, you will understand why you should write tests, and will have the concepts and tools to get started.
Prerequisites
Some knowledge with an Object-Oriented language would be beneficial, but not required.
Jay Luker will be presenting an introduction to Ghost Inspector, a cloud-based web UI testing service that takes some (some!) of the pain away from creating browser-based, web application tests. Think Selenium, but for projects that are short on the resources, infrastructure and/or coding expertise to confidently develop and manage a suite of fully automated, “good-enough” UI tests.
Jay is a Senior Software Engineer at Harvard DCE where he works on back-end applications and software for analytics data collection, deployment automation, and integration testing for the Extension School’s video processing and delivery system. Previously he has been an IT Specialist at the Smithsonian Astrophysics Data System, and a Software Developer at Ex Libris.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
4. Let’s suppose you are dating a girl
✤ A good girl
✤ For a movie
✤ Don’t mess up
✤ Again, don’t mess up
5. What could possibly went wrong?
✤ Wallet?
✤ Movie ticket?
✤ Brush teeth?
✤ Umbrella?
✤ Traffic?
6. How to prevent
✤ Wallet?
- Check before
✤ Movie ticket?
- Check before
✤ Brush teeth?
- Do it before
✤ Umbrella?
- Check before
✤ Traffic?
- Best arrive early.
7. What’s the Pattern
✤ Wallet?
- Check before
✤ Movie ticket?
- Check before
✤ Brush teeth?
- Do it before
✤ Umbrella?
- Check before
✤ Traffic?
- Best arrive early.
Unit Test
Pattern?
Integration Test
Pattern?
8. What is an unit?
✤ Automation
✤ Not temporary
✤ Even your cat can press a button to launch and pass
✤ Fast
✤ Idempotent
✤ Independent
✤ Easy to present error cause
9. What is an unit?
✤ Automation : Press a button to finish
✤ Not temporary : Should live for reasonable long
✤ Even your cat can press a button to launch and pass
✤ Fast : Relatively faster than integration test
✤ Idempotent : Same result
✤ Independent : No dependence on other component state
✤ Easy to present error cause : Easy to debug
11. Motivations
✤ Update application without breaking things
✤ Validate functionality of updates
✤ Be able to trust deployment checks (CI/CD workflow)
✤ Confirm that refactoring didn’t break things
12. ✤ Make software robust
✤ Easy to refactor
✤ Easy to debug
Test result
13. SoftwareTesting Scope
✤ The box approach
- White-box testing
- Black-Box testing
✤ Some important testing
- Stress Test
- Destructive Test
- Functional Test
- Beta Test
14. The Art of
UnitTesting
✤ Guides you step by step from
writing your first simple tests
to developing robust test sets
that are maintainable,
readable, and trustworthy.
18. Questions to Ask for UnitTest
✤ Let’s define Unit Test:
✤ Does unit test wrote two weeks ago still execute success and
get out come?
✤ Can my teammates pass my unit test wrote two month ago?
✤ Can unit tests finish in several minutes?
✤ One button to executes all unit test?
✤ Can I wrote basic unit test in minutes?
19. IntegrationTest
✤ Definition: Test against a working unit that isn’t full
controlled, might depends on real world component,
like time, network, database…
20. Definition of Good UnitTest
✤ Automation program that validates a method or a class
behavior.
✤ Writing on automation testing framework
✤ Easy to write
✤ Execute fast
✤ Same results for any user
✤ Act as green light save zone for developers
21. UnitTest vs IntegrationTest
✤ Scenario : Logger is an object that writes log to remote
database
✤ Unit Test: (Test-inhibiting)
Build up fake Logger
Assert object method output or called
Runs in isolation environment without external
dependency
✤ Integration Test:
Verify log built and written, log content validation
32. Stub vs Mock
✤ Unit has 3 possible result:
- Return value
- State change
- Interaction with dependency object
✤ Interaction Test:
Test how an object interact with other object
Should always be consider as last solution
Stub pattern
Mock Pattern
33. Stub vs Mock
✤ Stub Object:
Normally support object, this kind of test help verify
tested object.
It won’t cause failure.
✤ Mock Object:
Normally main tested object, this kind of test might
cause failure
Stub pattern
Mock Pattern
34. Key Point of Good UnitTest
✤ Unit Test Tips —> Pre-knowledge
✤ Unit Test Best Practice —> Pattern
✤ Unit Test Code Smell —> Real Case
35. UnitTestTips
✤ Smallest unit of testing, trustable, repeatable
✤ Completely separate from integration test
✤ No contact of external resources or static object
✤ It’s not suggest writing unit test on DAL, (Data Access
Layer), associate with database.
37. UnitTest Best Practice
✤ Basic concept for Unit Test:
✤ TrustWorthy
✤ Maintainable
✤ Readability
✤ Trustworthy :
- Can you trust your test result?
- Main purpose is finding test failure root cause
38. UnitTest Best Practice
✤ Maintainable :
- Continuous maintain test code
- Lower cost of maintaining code
✤ Readability :
- Naming of unit test name
- If it’s hard to understand, people tend to not
use, trust, maintain tests.
40. UnitTest Code Smell
✤ No association of each test method
✤ No execution order of each test method
✤ Don’t assert two things in one test method
✤ Test method naming suggestion:
- Method name
- Scenario
- ExpectResult
ChangePassword_Get_ReturnViewResult
42. How can UnitTest Framework help
you
✤ Easy to write structured testing
- Tag of specific trait of unit test
- Provide method to assert result
✤ Execute unit test
- Found tests
- Automatically execute them
- Show progress
✤ Validate result
- Failed reason
- Failed, success counts
43. Isolation framework
✤ Why use isolation framework
Generate dynamic stub and mock at runtime.
✤ Benefits:
Easy to validate parameter
Easy to verify methods call count
Easy to build up fake object
44. Constrained Isolation Framework
✤ What is constrained isolation framework?
Constrained to mock some methods.
Ex: static method, non-public methods.
✤ Constrained Isolation framework build mock object by
override or extends base class and thus constrained to
compiler and Intermedia Language (IL)
49. FAQ
✤ Difference between Stub and Mock
http://williamherry.com/blog/2013/05/13/understand-stub-and-mock/
✤ Unit Test vs Integration Test
https://www.guru99.com/unit-test-vs-integration-test.html
✤ Unit Test pattern
http://xunitpatterns.com/index.html
✤ Unit Test Principle
https://github.com/ghsukumar/SFDC_Best_Practices/wiki/F.I.R.S.T-
Principles-of-Unit-Testing
50. Author Recommended
✤ Unit Test Pattern:
XUnit Test Pattern: Refactoring Test
✤ Legacy Code:
Working Effectively with Legacy Code
✤ CI/CD:
Continuous Integration: Improving Software Quality
and Reducing Risk
52. Conclusion
✤ Unit Test vs Integration Test
✤ Test Double
✤ Key Point of Unit Test
✤ Three Success Key Factor of Unit Test
✤ Isolation framework
✤ FAQ
56. Reference
✤ Notes of The Art of Unit Testing
https://blog.miniasp.com/post/2010/02/21/The-Art-of-
Unit-Testing-with-Roy-Osherove-Notes.aspx
✤ https://www.guru99.com/unit-test-vs-integration-test.html
✤ Good slides from docker
https://www.slideshare.net/rheinwein/stop-being-lazy-
and-test-your-software?
qid=2256a3e5-0099-40be-9a8e-6114ceec068b&v=&b=&from_s
earch=5
57. Reference
✤ 5 test double type
http://oomusou.io/jasmine/jasmine-test-double/
✤ XUnit Test Patterns
http://xunitpatterns.com/index.html
✤ Testing tutorial
https://www.tutorialspoint.com/software_testing