About This Course

Angular (aka Angular.js or AngularJS) is a web application framework that is developed and maintained by Google. It quickly became the most popular web application framework around 2013-2014. Angular gives developers everything they need to build full interactive data-driven applications.

The Advanced AngularJS with Test Driven Development covers advanced Angular topics while also covering how to write unit and E2E testing for Angular. The course starts with a brief review of HTML, CSS, and ES5 and Angular concepts (MVVM, Directives, Controllers, ES5 vs. ES6 features/syntax). It then jumps into how to setup dynamic routing and application states using ui-router. Test-driven development with Jasmine and ng-mocks is covered thoroughly. Responsive design best practices is given a half-day review. Developers will learn how to test each major Angular module type, including directives, controller, services, templates and events.

Request More Info About This Course

Course Category


This is a five-day hands-on course.

Skill Level

What Happy Developers Say

The instructor did a good job of adjusting content to meet different skill levels.
Developer, Intuit
The instructor was very knowledgeable, making it easy to ask questions and provided good conversation about the topic at hand.
dell  logoWeb Developer, DELL
The instructor demonstrated strong broad knowledge as well as technical in-depth when appropriate
Engineer, Starbucks
I liked that we could determine what to learn, no time was wasted.
Javascript Developer, RetailMeNot
I had trouble understanding a certain concept, and told the instructor that I just didn't get it. While the class was busy with an exercise, he sat down with me, gave me material to read, and made sure I understood it before I moved on. I really appreciated that.
JavaScript Developer, PayPal
The instructor has a great attitude and pacing. Amazing how much he knows about JS!
Junior JavaScript Developer, Macy's


  • Correctly utilize the major features of HTML5, CSS3, and ES5.
  • Understand the difference between bind, call, and apply.
  • Build basic Angular demo applications using directives, controllers, and services.
  • Design applications to be responsive to mobile, tablet, laptop, and large monitor screen sizes.
  • Setup routing for application states using ui-router.
  • Independently test Angular modules using E2E and unit tests.


Developers with intermediate JavaScript experience and preferably some experience working with MVC or MV* frameworks.

Course Outline

  • Automated Testing
  • HTML5 and CSS3 Review
    • Overview of HTML5
    • Semantic Markup
    • Semantic Tables
    • HTML5 Forms and JavaScript
    • Overview of CSS3
    • Responsive Design and Media Queries
    • Transitions, Transforms, Animations
  • Introducing Frameworks and Responsive Design
    • What are frameworks and why are they used?
    • What is mobile first?
    • What is responsive design?
    • Understanding Media Queries
    • Working with Grid Layouts
  • ECMA Objects
    • What is ECMAScript?
    • Function Arguments
    • Call and Apply
    • Window Object
    • Closures
    • Array Methods
    • Binding Functions to Objects
    • Object.Create
    • Descriptors
  • Design Patterns
    • What are design patterns?
    • Common JS Design Patterns
    • Currying
  • Review of core AngularJS key concepts
    • MVW framework
    • Directives
    • Controllers
    • Services
  • UI-Router
    • UI-Router Nested Views
    • UI-Router Multiple Views
    • UI-Router Extras
  • Services
    • Provider Service
    • Service Decorator
  • Web Services
    • $http VS $resource VS Restangular for REST
    • Promises
    • Messaging
  • Best Practices with AngularJS
    • Angular Design Patterns
    • Effective Angular testing strategies
    • Controller-as-syntax
  • Angular scenario runner
    • End-to-End (E2E) testing
    • Simulating user interaction
    • Navigating pages and routes
    • Reloading pages
    • Location object
    • Setting expectations
    • Page content interaction
    • Handling Angular Binding
    • Form interaction
    • Testing loops
  • Angular mocks (http mocks, etc)
    • Angular Mocks library with ‘angular-mocks.js’
    • Dependency injection
    • Fake HTTP back-end with ‘$httpBackend’
    • Setting expectations with ‘expect’
    • Request handling
    • Setting back-end definitions with ‘when’
    • Stub responses and calls
    • jasmine spies
  • Writing Effective Tests
    • Page content
    • controllers, Unit and E2E
    • filters, Unit and E2E
    • directives, Unit and E2E
    • services / factories, Unit and E2E
    • templates, Unit and E2E
    • events, Unit and E2E
Request More Info About This Course

Instructors Who Teach This Course



Elias Carlston has 20 years’ experience as a software engineer, from lean startups to large enterprises. Having great mentors early on showed Elias the value of sharing knowledge, and he enthusiastically embraces the opportunity to give back to the community through teaching. Beginning his career as a data analyst for a large non-profit clinic, he soon became a full stack developer. First, at ... read more



Craig recently released the book, The JavaScript Framework Guide: AngularJS, Backbone, and Ember. Craig has been a guest on the Hanselminutes and JavaScript Jabber podcasts. He’s an avid blogger, and several of his articles have been published in Peter Cooper’s poplular “JavaScript Weekly” newsletter. He also has his own podcast, “The Front-End Developer’s Cast”.

Craig has been a developer f... read more



Eve has been focused on web and curriculum development since college, where she studied user interface design and usability. Since then, she has consulted as a project manager and coder to deliver interactive web applications, from e-Learning portals to mobile apps.

Well-versed in HTML5, CSS3 and other front-end technologies, Eve has lent her interface and training skills to the redesign of ... read more



With backgrounds in technology, business and education, Jason brings a broad array of experience to BDA. He‰'s been programming since he was a kid and currently runs a business, 303 Velocity, that builds iOS and Android apps for its clients. They also do consulting work to help publishers get more downloads and sales for their apps. He has taught mobile classes for Yahoo! and Intel employees an... read more

Who Takes This Training?

Learn More About This Course