Discover why unit testing is such an important practice in software development and learn about Test Driven Development, mocking and other code testing practices in .Net
What is AngularJS
AngularJS main components
View / Controller / Module / Scope
Scope Inheritance.
Two way data binding
$watch / $digest / $apply
Dirty Checking
DI - Dependence Injection
$provider vs $factory vs $service
AngularJS 101 - Everything you need to know to get startedStéphane Bégaudeau
In this presentation, you will find everything need to get started with AngularJS.
For more details, have a look at my blog (http://stephanebegaudeau.tumblr.com) or follow me on twitter (@sbegaudeau)
This document discusses AngularJS application architecture best practices including:
- Separation of concerns by component type and feature
- Consistent syntax such as aliasing 'this' for nested functions
- Organizing the app by feature rather than type for larger apps
- Naming conventions for controllers, services, directives
- Using modules to aggregate dependencies
- Best practices for controllers, AJAX calls, unit testing, and end-to-end testing
The document discusses various aspects of single-page applications built with AngularJS including data binding, modules, controllers, directives, services, dependency injection, routing, and events. It provides code examples for defining a module, controller, directive, filter, and service as well as injecting services into controllers and emitting and broadcasting events. The document encourages joining the AngularJS community by testing apps, following style guides, reading publications, and subscribing to newsletters to learn more about building single-page apps with AngularJS.
AngularJS is a JavaScript framework for building dynamic web applications. It uses MVC architecture and allows developers to write client-side code using HTML as the template language. Key features include two-way data binding, directives for extending HTML, dependency injection, and routing. AngularJS aims to solve problems with traditional HTML by making it dynamic and declarative. It separates concerns into models, views, and controllers and uses services to retrieve data from servers.
The document provides an overview of AngularJS, including its core concepts and how it can be used with Java frameworks like Spring, Struts, and Hibernate. AngularJS is an open-source JavaScript framework that assists with building single-page applications using MVC architecture. It allows developers to specify custom HTML tags and directives to control element behavior. The document then discusses key AngularJS concepts like data binding, directives, expressions, filters, controllers, dependency injection, views/routing, and services. It provides examples of how these concepts work and how AngularJS can integrate with Java frameworks in a sample reader application divided into multiple sub-projects.
AngularJS is a JavaScript framework for building dynamic web applications. It augments HTML with custom attributes and directives to bind data and behaviors to the DOM. Key features include two-way data binding, reusable components, dependency injection, routing, and templating. AngularJS uses an MVC or MVVM pattern, with scopes providing the view model. The framework enhances HTML, encourages test-driven development, and makes single page apps possible.
The document describes an internship project building a web application using AngularJS for the client-side views, Express for the server, and Node.js. The application allows users to submit queries which are passed from Angular to Express to a commerce API, with responses returned to render dynamic views. The intern gained experience with asynchronous JavaScript, Angular, Express, Node, and related tools like Balsamiq and Git.
AngularJS is a JavaScript framework for building single-page applications. It enhances HTML with new attributes and uses MVC/MVVM patterns. Key features include data binding, directives, filters, expressions and dependency injection. AngularJS makes it easier to organize web apps at the client-side by defining ways to structure code and adding custom tags/attributes to HTML. It also helps with common tasks in SPAs like routing, data loading and handling user events.
We Will learn about:
What is AngularJs?
Key Points
Core Features of AngularJS
How is it works?
AngularJs Terminologies
AngularJs directives
How we start work on AngularJs?
AngularJs Tags
How we use Yeoman?
Advantages and Disadvantages
Single-page applications (SPAs) take user interaction with web applications to a new level. This means that more logic will be moved to the web browser and we have to become more familiar with JavaScript. AngularJS is one of the leading JavaScript frameworks when talking about SPAs. In this workshop I will present AngularJS in terms of problems it addresses and how it does this. Together we will develop a single-page application and we will go through how traditional concepts of web applications (data and state management, authentication) can be solved using the framework. Furthermore, we will dive into typical pitfalls when developing applications using AngularJS and will see how we can avoid them.
This presentation is an effort to combine all the cool features present in Angular and provide a basic idea about how it would help a developer overcome some of the common issues faced in client side development.
On September 25th we hosted a webinar on “Step by Step AngularJS for beginners” for the Indian region and we’d like to share the presentation and recorded webinar with you now! In the webinar, we covered:
• Introduction to AngularJS
• Introduction to SPA
• Controller and $scope object
• Controller hierarchy
• Service and factory methods
• Routing
• CRUD operations in AngularJS application
And more!
This document provides an overview of AngularJS, including its core features and concepts. It discusses how AngularJS is a client-side JavaScript framework that uses MVC architecture. Key points covered include two-way data binding, templates, dependency injection, modules, controllers, views, models, scopes, filters, services, and directives. Custom directives and their creation are demonstrated. The document aims to give attendees an introduction to AngularJS and its basic building blocks.
Test driven development - Zombie proof your codePascal Larocque
This document discusses test driven development and how to write testable code. It recommends writing tests before writing code to prevent "zombie code" that is hard to maintain and change. Specific tips provided include using dependency injection, following SOLID principles to separate concerns, and writing fast, isolated tests using tools like PHPUnit and PHPSpec. Continuous integration is also recommended to prevent technical debt from accumulating.
TDD is a software development technique where unit tests are written before production code to define desired functionality. The TDD cycle involves writing a test that fails, then code to pass the test, and refactoring code while ensuring tests still pass. This forces critical analysis and design while providing a safety net of regression tests. Benefits include feedback that code works, tests as documentation, and improved design through loose coupling and refactoring with confidence from tests.
Binary Studio Academy: .NET Code TestingBinary Studio
This document discusses code testing and provides recommendations for effective testing practices. It covers what tests are, why they are important, what should be tested, naming conventions, popular testing frameworks, test characteristics, types of tests, testable code principles, mocking libraries, test-driven development, test coverage, continuous integration, and behavior-driven development. Recommendations include testing all code, common and edge cases, using the AAA pattern (Arrange-Act-Assert), writing small independent tests, and leveraging tools to automate testing.
This document discusses test-driven development (TDD), a software development technique where test cases are written before implementation code. TDD involves writing a failing test case, then code to pass the test, and refactoring code as needed. Key principles are writing tests first, running tests frequently, and making code changes in small iterative steps. TDD aims to increase code quality and reduce bugs by fully testing code in short cycles.
Test-Driven Development (TDD) is a software development process that relies on writing automated tests before developing code to pass those tests ("red-green-refactor"). TDD promotes writing isolated, repeatable unit tests and decoupling code from external dependencies through techniques like dependency injection and mocking. While TDD has benefits like ensuring quality and preventing regressions, it has also received criticism for potentially leading to over-testing and an over-reliance on mocking. The presentation concludes with an open discussion of experiences and opinions on TDD.
This document discusses code testing and provides recommendations for effective testing practices. It recommends writing tests for all code, including common and edge cases, and covering code with known bugs before fixing them. Popular unit testing frameworks like NUnit, xUnit, and Microsoft's framework are mentioned. Tests should be easy to write and understand, small, independent, and able to run in parallel. Test-driven development and behavior-driven development methodologies are advocated to write tests before code. Continuous integration is recommended to automate regular test execution.
The document outlines an upcoming programming workshop that will cover various JetBrains IDEs like PyCharm, IntelliJ IDEA, and PhpStorm. It then discusses Test Driven Development (TDD), including what TDD is, the development cycle used in TDD, and benefits like encouraging simple designs and confidence. Different types of software tests are also listed like unit tests, integration tests, acceptance tests, and others. Specific testing techniques like unit testing, integration testing using bottom-up and top-down approaches, and acceptance testing are then explained at a high level. Finally, some important notes on testing like trusting tests and prioritizing maintainability are provided.
Test-driven development (TDD) is a software development process where unit tests are written before code to define desired functionality. The TDD cycle involves writing a failing test, then code to pass the test, and refactoring code. TDD encourages simple code design and inspires confidence through comprehensive test coverage. Benefits include more modular, flexible code and catching defects early. Shortcomings include reliance on unit tests and potential for false sense of security. Designing for testability and managing tests is important for large systems.
Test-driven development (TDD) is a software development process where unit tests are written before code to define desired functionality. The TDD cycle involves writing a failing test, then code to pass the test, and refactoring code. TDD encourages simple code design and inspires confidence through automated testing. It helps ensure code meets requirements and is testable from the start.
Test-driven development (TDD) is a software development process where unit tests are written before code to define desired functionality through a series of short cycles: write a test, see it fail, write minimum code for it to pass, refactor code. Key benefits include more modular/extensible code, catching defects early, and increased confidence through thorough test coverage. Shortcomings include lack of full functional testing and risk of false sense of security if tests have same blind spots as code.
Test-driven development (TDD) is a software development process where unit tests are written before code to define desired functionality. The TDD cycle involves writing a failing test, then code to pass the test, and refactoring code. TDD encourages simple code design and finding defects early. Benefits include more modular, flexible code and high test coverage catching defects early. Shortcomings include difficulty testing interfaces and potential for false sense of security if not supplemented with other testing. Designing for testability with high cohesion, loose coupling, and published interfaces supports effective TDD.
Test-driven development (TDD) is a software development process where unit tests are written before code to define desired functionality. The TDD cycle involves writing a failing test, then code to pass the test, and refactoring code. TDD encourages simple code design and inspires confidence through automated testing. It helps ensure code meets requirements and is testable from the start.
Test-driven development (TDD) is a software development process where unit tests are written before code to define desired functionality. The TDD cycle involves writing a failing test, then code to pass the test, and refactoring code. TDD encourages simple code design and finding defects early. Benefits include more modular, flexible code and increased productivity, while shortcomings include reliance on unit tests and potential for false sense of security. Designing for testability and managing tests is important for large systems.
This document summarizes a talk on unit testing in JavaScript. It introduces the speaker and their company Third Wave Technology. It then defines unit testing as writing code to test individual units in isolation. The benefits of unit testing are discussed such as speeding up development, providing documentation, and helping write better code. Popular JavaScript unit testing frameworks like QUnit and Jasmine are presented. The document concludes by suggesting factors to consider when choosing a unit testing framework.
Multilanguage Pipelines with Jenkins, Docker and Kubernetes (Oracle Code One ...Jorge Hidalgo
Conference session from Oracle Code One San Francisco 2018 - In the brave new world of microservices, the need for polyglot solutions is growing, making it harder to standardize continuous delivery pipelines across many different languages and runtimes. Tasks like compiling, packaging, profiling or verifying software components, are now more diverse and our toolbelt as developers does not cease to grow. Thankfully, there are ways to prescribe and standardize without losing freedom and flexibility. In this talk we will showcase. from a very pragmatic and hands-on point of view, an architectural approach based on real-world project experiences, unleashing the power of Jenkins, Jenkinsfile declarative pipelines, Jenkins libraries, Docker and Kubernetes as the universal runtime platform, for continuously delivering polyglot components at ease.
One of the main hindrances to teams being able to respond rapidly to new features are technical problems resulting from bad coding practices, also known as technical debt. Melissa and Brett will cover Agile tools and practices that help development teams write better code and increase maintainability. Topics that will be covered include:
Pair programming
Automated Unit Testing
Refactoring
Test-Driven Development
Agile Architecture
Similar to Introduction to Unit Tests and TDD (20)
The Reactive Extensions (Rx) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators. Here is an overview of Rx with examples at the end.
Why another test framework in dotnet ? In this presentation, I will try to convince you to switch to xUnit. Main concepts & extensibility points are covered here. Happy testing !
A really quick introduction to Microsoft Azure Storage and all of its services. It's one of the core components of Azure and it's really important to understand it if you want to "move to the cloud".
This document provides an overview of Akka.NET, an actor model framework for .NET. It discusses how Akka.NET uses message passing between immutable messages to build distributed and concurrent applications. It also covers key Akka.NET concepts like actors, actor systems, supervision strategies, and plugins for clustering, persistence and remoting.
'Scenario Driven Design' allow programmers to make more usable APIs and avoid performance issues. REST principles are often misunderstood and programmers expose their raw data model without any logic. Think about your scenarios first !
The document provides tips for effectively managing email in Outlook. It recommends using only 3 folders - Inbox, Reference, and Personal. Categories should be set up for emails like @Read and @Waiting to help with organization. Search folders allow filtering emails in different categories. The four D's model - Do, Delegate, Defer, Delete - is presented as a decision-making framework for handling emails. Calendar, tasks, and rules are also discussed as tools for staying organized. Questions can be directed to the presenter, Clive, by email.
Performance doesn’t have the same definition between system administrators, developpers and business teams. What is Performance ? High CPU usage, not scalable web site, low business transaction rate per sec, slow response time, … This presentation is about maths, code performance, load testing, web performance, best practices, … Working on performance optimizaton is a very broad topic. It’s important to really understand main concepts and to have a clean and strong methodology because it could be a very time consumming activity. Happy reading !
Because we are not only shipping code and we are no longer Microsoft developers but .NET developers, it's time to open your mind and to see what is offering the OSS world.
Docker is an amazing tool.
Docker did popularize container and brought a way to manage it.
Ok, seems to be cool, but why do developers care?
- Static application environment: we know exactly what we are running
- Repeatable, runnable artifact: we can deploy everywhere, anytime
- Loosely coupled: we can manage, isolate, and compose at environment level easily
Please have a look to this Betclic presentation and remember that .NET CLR are coming in GNU/linux world!
Flyway is a light database migration tools:
- Migrate the database from a list of sql migration scripts (schemas and data).
- Each script is prefixed by a version number that determine the version of the database.
- The execution trace of the scripts is saved in a "schemas_version" table.
- Automatically find which scripts to execute to upgrate a database to a specific version.
NDepend is a static analysis tool for .NET managed code. This tool supports a large number of code metrics, allows for visualization of dependencies using directed graphs and dependency matrix. The tools also performs code base snapshots comparison, and validation of architectural and quality rules.
This document summarizes Jurgen Appelo's book "Management 3.0" and provides examples of management workout exercises. It discusses that Management 1.0 is bad management, while Management 2.0 tries to do the right thing but fails due to a lack of understanding of social systems. Management 3.0 does the right thing through good understanding. Seventeen management workout themes are then outlined that support engaging people, improving systems, and delighting clients.
A mixed introduction of Lean and Agile concepts targeted at business audience, presenting 3 key lean concepts (MVP, short feedback loop, cost of delay).
The document discusses features and changes in ASP.NET vNext, the future version of ASP.NET. It describes how vNext uses project.json for dependencies instead of references, allows editing code without recompiling, and merges MVC, Web API and Web Pages into a single framework. It also discusses tools for building, running and deploying vNext applications in Visual Studio 2015 and how the runtime will be more modular and cross-platform compared to previous versions of ASP.NET.
Since the introduction of C#, async/await concepts are still misunderstood by many developers.
Async programming tries to solve three problems (Offloading, Concurrency, Scalability) in a mean abstraction.
This presentation is a good starting point to asynchronous programming in .net. There are many links and references, so do not hesitate to go deeper.
This document discusses mobile UX trends from October 2014. It covers interfaces, use of space and content, colors, pictures and effects, gestures, and animations. Specific trends mentioned include simplified interfaces focusing on key actions, use of layered and circular interface elements, infographics, blurred backgrounds, large images, swipe gestures, and animations that guide users without overusing motion effects. Examples are provided for many of these trends from apps like FIFA, Airbnb, Vine, and Google Glass. Guidelines are also referenced from Apple, Android, Windows, and other sources.
The Model View ViewModel (MVVM) is an architectural pattern originated by Microsoft as a specialization of the Presentation Model (Martin Fowler). Similar to MVC, MVVM is suitable for client applications (Xaml-based, Xamarin, SPA, ...) because it facilitates a clear separation between the UI and the Business Logic. Examples with WPF, MvvmCross, AngularJs. It also contains solutions for common use cases.
Recommendations are everywhere : music, movies, books, social medias, e-commerce web sites… The Web is leaving the era of search and entering one of discovery. This quick introduction will help you to understand this vast topic and why you should use it.
In one of our weekly training, we’ve talked about Git. Here is a quick overview of the main concepts, basic commands and branching strategy, how to work with Git, how to contribute to an OSS project, …
This document introduces Roslyn, an open source .NET compiler platform that provides code analysis APIs. It allows building code analysis tools like those used in Visual Studio. The document outlines Roslyn's SDK version, refactoring tools, and options for customization. It also lists some language features enabled by Roslyn like auto-property initializers, primary constructors, and exception filters. Links are provided to learn more about Roslyn on its CodePlex site and blogs.
Choose our Linux Web Hosting for a seamless and successful online presencerajancomputerfbd
Our Linux Web Hosting plans offer unbeatable performance, security, and scalability, ensuring your website runs smoothly and efficiently.
Visit- https://onliveserver.com/linux-web-hosting/
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Erasmo Purificato
Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)
An invited talk given by Mark Billinghurst on Research Directions for Cross Reality Interfaces. This was given on July 2nd 2024 as part of the 2024 Summer School on Cross Reality in Hagenberg, Austria (July 1st - 7th)
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc
Six months into 2024, and it is clear the privacy ecosystem takes no days off!! Regulators continue to implement and enforce new regulations, businesses strive to meet requirements, and technology advances like AI have privacy professionals scratching their heads about managing risk.
What can we learn about the first six months of data privacy trends and events in 2024? How should this inform your privacy program management for the rest of the year?
Join TrustArc, Goodwin, and Snyk privacy experts as they discuss the changes we’ve seen in the first half of 2024 and gain insight into the concrete, actionable steps you can take to up-level your privacy program in the second half of the year.
This webinar will review:
- Key changes to privacy regulations in 2024
- Key themes in privacy and data governance in 2024
- How to maximize your privacy program in the second half of 2024
Quality Patents: Patents That Stand the Test of TimeAurora Consulting
Is your patent a vanity piece of paper for your office wall? Or is it a reliable, defendable, assertable, property right? The difference is often quality.
Is your patent simply a transactional cost and a large pile of legal bills for your startup? Or is it a leverageable asset worthy of attracting precious investment dollars, worth its cost in multiples of valuation? The difference is often quality.
Is your patent application only good enough to get through the examination process? Or has it been crafted to stand the tests of time and varied audiences if you later need to assert that document against an infringer, find yourself litigating with it in an Article 3 Court at the hands of a judge and jury, God forbid, end up having to defend its validity at the PTAB, or even needing to use it to block pirated imports at the International Trade Commission? The difference is often quality.
Quality will be our focus for a good chunk of the remainder of this season. What goes into a quality patent, and where possible, how do you get it without breaking the bank?
** Episode Overview **
In this first episode of our quality series, Kristen Hansen and the panel discuss:
⦿ What do we mean when we say patent quality?
⦿ Why is patent quality important?
⦿ How to balance quality and budget
⦿ The importance of searching, continuations, and draftsperson domain expertise
⦿ Very practical tips, tricks, examples, and Kristen’s Musts for drafting quality applications
https://www.aurorapatents.com/patently-strategic-podcast.html
YOUR RELIABLE WEB DESIGN & DEVELOPMENT TEAM — FOR LASTING SUCCESS
WPRiders is a web development company specialized in WordPress and WooCommerce websites and plugins for customers around the world. The company is headquartered in Bucharest, Romania, but our team members are located all over the world. Our customers are primarily from the US and Western Europe, but we have clients from Australia, Canada and other areas as well.
Some facts about WPRiders and why we are one of the best firms around:
More than 700 five-star reviews! You can check them here.
1500 WordPress projects delivered.
We respond 80% faster than other firms! Data provided by Freshdesk.
We’ve been in business since 2015.
We are located in 7 countries and have 22 team members.
With so many projects delivered, our team knows what works and what doesn’t when it comes to WordPress and WooCommerce.
Our team members are:
- highly experienced developers (employees & contractors with 5 -10+ years of experience),
- great designers with an eye for UX/UI with 10+ years of experience
- project managers with development background who speak both tech and non-tech
- QA specialists
- Conversion Rate Optimisation - CRO experts
They are all working together to provide you with the best possible service. We are passionate about WordPress, and we love creating custom solutions that help our clients achieve their goals.
At WPRiders, we are committed to building long-term relationships with our clients. We believe in accountability, in doing the right thing, as well as in transparency and open communication. You can read more about WPRiders on the About us page.
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Chris Swan
Have you noticed the OpenSSF Scorecard badges on the official Dart and Flutter repos? It's Google's way of showing that they care about security. Practices such as pinning dependencies, branch protection, required reviews, continuous integration tests etc. are measured to provide a score and accompanying badge.
You can do the same for your projects, and this presentation will show you how, with an emphasis on the unique challenges that come up when working with Dart and Flutter.
The session will provide a walkthrough of the steps involved in securing a first repository, and then what it takes to repeat that process across an organization with multiple repos. It will also look at the ongoing maintenance involved once scorecards have been implemented, and how aspects of that maintenance can be better automated to minimize toil.
Support en anglais diffusé lors de l'événement 100% IA organisé dans les locaux parisiens d'Iguane Solutions, le mardi 2 juillet 2024 :
- Présentation de notre plateforme IA plug and play : ses fonctionnalités avancées, telles que son interface utilisateur intuitive, son copilot puissant et des outils de monitoring performants.
- REX client : Cyril Janssens, CTO d’ easybourse, partage son expérience d’utilisation de notre plateforme IA plug & play.
Implementations of Fused Deposition Modeling in real worldEmerging Tech
The presentation showcases the diverse real-world applications of Fused Deposition Modeling (FDM) across multiple industries:
1. **Manufacturing**: FDM is utilized in manufacturing for rapid prototyping, creating custom tools and fixtures, and producing functional end-use parts. Companies leverage its cost-effectiveness and flexibility to streamline production processes.
2. **Medical**: In the medical field, FDM is used to create patient-specific anatomical models, surgical guides, and prosthetics. Its ability to produce precise and biocompatible parts supports advancements in personalized healthcare solutions.
3. **Education**: FDM plays a crucial role in education by enabling students to learn about design and engineering through hands-on 3D printing projects. It promotes innovation and practical skill development in STEM disciplines.
4. **Science**: Researchers use FDM to prototype equipment for scientific experiments, build custom laboratory tools, and create models for visualization and testing purposes. It facilitates rapid iteration and customization in scientific endeavors.
5. **Automotive**: Automotive manufacturers employ FDM for prototyping vehicle components, tooling for assembly lines, and customized parts. It speeds up the design validation process and enhances efficiency in automotive engineering.
6. **Consumer Electronics**: FDM is utilized in consumer electronics for designing and prototyping product enclosures, casings, and internal components. It enables rapid iteration and customization to meet evolving consumer demands.
7. **Robotics**: Robotics engineers leverage FDM to prototype robot parts, create lightweight and durable components, and customize robot designs for specific applications. It supports innovation and optimization in robotic systems.
8. **Aerospace**: In aerospace, FDM is used to manufacture lightweight parts, complex geometries, and prototypes of aircraft components. It contributes to cost reduction, faster production cycles, and weight savings in aerospace engineering.
9. **Architecture**: Architects utilize FDM for creating detailed architectural models, prototypes of building components, and intricate designs. It aids in visualizing concepts, testing structural integrity, and communicating design ideas effectively.
Each industry example demonstrates how FDM enhances innovation, accelerates product development, and addresses specific challenges through advanced manufacturing capabilities.
7 Most Powerful Solar Storms in the History of Earth.pdfEnterprise Wired
Solar Storms (Geo Magnetic Storms) are the motion of accelerated charged particles in the solar environment with high velocities due to the coronal mass ejection (CME).
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfNeo4j
Presented at Gartner Data & Analytics, London Maty 2024. BT Group has used the Neo4j Graph Database to enable impressive digital transformation programs over the last 6 years. By re-imagining their operational support systems to adopt self-serve and data lead principles they have substantially reduced the number of applications and complexity of their operations. The result has been a substantial reduction in risk and costs while improving time to value, innovation, and process automation. Join this session to hear their story, the lessons they learned along the way and how their future innovation plans include the exploration of uses of EKG + Generative AI.
How RPA Help in the Transportation and Logistics Industry.pptxSynapseIndia
Revolutionize your transportation processes with our cutting-edge RPA software. Automate repetitive tasks, reduce costs, and enhance efficiency in the logistics sector with our advanced solutions.
3. DEFINITION
A unit test confirms functionality of a
small unit of functionality or component
in a larger system
•
•
•
•
Written by developers
isolate piece of code
No use of database or external ressources
Find problems early in dev cycle
3
6. HOW UNIT TEST FRAMEWORKS WORK
Unit test Runner .exe
My Code
My unit test code
Unit Test Common Lib
Test Results
Code Coverage
6
7. TEST DRIVEN DEVELOPMENT
1. Create a falling test
Red
2. Make the test pass
Green
3. Refactor
Improve the internal
implementation without changing
the external contract or behavior
7
8. THE TESTS ARE THE SPECS
*.doc files can’t prove
software works !
8
9. LIMITATION
• 100 % code coverage impossible to reach
• Impossible to catch all errors
9
10. UNIT TEST OR INTEGRATION TEST ?
Too often we try to write unmaintainable
integration tests
UT
IT
UT
10
11. UNIT TEST VS. DATA BASE
• Isolate data access with an interface
11
12. UNIT TEST VS. PROVIDERS
Critical for teams using third-parties.
• Unit Test to simulate provider calls
• UnitTest unit to send data to providers
If the provider updates its interface test
fails
12
17. BEST PRACTICES
• New projects have to include unit test
• Legacy code : when a bug is raised, write a UT that
fails, fix the bug and the UT is successful.
17
18. MORE TEST FIRST TECHNIQUES
• ATDD - Acceptance test driven development
Test written in a business language with a wiki
• BDD
Behavior Driven Development
18
22. ABOUT BETCLIC
•
•
•
Betclic Everest Group, one of the world leaders in online gaming, has a unique portfolio
comprising various complementary international brands: Betclic, Everest Gaming, bet-athome.com, Expekt…
Active in 100 countries with more than 12 million customers worldwide, the Group is
committed to promoting secure and responsible gaming and is a member of several
international professional associations including the EGBA (European Gaming and Betting
Association) and the ESSA (European Sports Security Association).
Through our brands, Betclic Everest Group places expertise, technological know-how and
security at the heart of our strategy to deliver an on-line gaming offer attuned to the passion
of our players.