Index
A
- 3 A's
- reference link / Testing techniques
- 3A's
- 3A's, application to enter comments
- 3A's, comment adding specification
- 3A's, comment liking specification
- AngularJS
- installing / Installing AngularJS
- AngularJS components
- AngularJS REST, testing with
- about / Testing with AngularJS REST
- product service, testing / Testing the product service
- $http, testing with Karma / Testing $http with Karma
- AngularJS routes
- about / Walk-through of Angular routes
- setting up / Setting up AngularJS routes
- directions, defining / Defining directions
- flip flop test, assembling / Assembling the flip flop test
- AngularJS services
- about / Services
- Angular Mocks
- installing / Installing Angular mocks
- URL / Installing Angular mocks
- application to enter comments
- specification, preparing / Preparing the application's specification
- setting up / Setting up the project
- directory, setting up / Setting up the directory
- Protractor, installing / Setting up Protractor
- Protractor, setting up / Setting up Protractor
- Karma, setting up / Setting up Karma
- http-server setup / Setting up http-server
- Karma configuration / Configuring Karma
- application to enter comments, TDD life cycle
- about / Bring on the comments
- test first / Test first
- 3A's / Test first
- test, running / Make it run
- module, adding / Adding the module
- input, adding / Adding the input
- controller / Controller
- test, passing / Make it pass
- test, improving / Make it better
- asynchronous calls
- testing / Testing asynchronous calls
- creating, in Karma / Creating asynchronous calls in Karma
- creating, in Protractor / Creating asynchronous calls in Protractor
- async magic components, Protractor
- about / Async magic
- page, loading before test execution / Loading a page before test execution
- assertion on elements / Assertion on elements that get loaded in promises
B
- beforeEach parameter
- about / Test first, Test first
- bottom-up approach
- about / Top-down or bottom-up approach
- using / Using a bottom-up approach
- Bower
- about / Bower
- installing / Bower installation
- broadcast
- testing / Testing broadcast, Testing broadcast
- builder object
- about / Building with a builder
- builder pattern
- about / Building with a builder
C
- $controller variable
- Chrome
- about / Installation prerequisites
- URL / Installation prerequisites
- comment liking specification
- about / Onwards and upwards
- testing, with Protractor test template / Test first
- 3A's / Test first
- test, running / Make it run
- unit tests, fixing / Fixing the unit tests
- test, improving / Make it better
- test, coupling / Coupling of the test
- controller
- testing / Testing a controller
- simple controller test setup / A simple controller test setup
- scope, initializing / Initializing the scope
- curl tool
- about / REST – the language of the Web
D
- describe parameter
- about / Test first, Test first
- Describe property, Karma test / Testing with Karma
- directions, AngularJS routes
- ngRoute, configuring / Configuring ngRoute
- route controllers, defining / Defining the route controllers
- route views, defining / Defining the route views
- documentation, TDD
- about / Fundamentals of TDD
- Document Object Model (DOM) / TDD with Protractor
E
- emit
- about / Emitting
- testing / Testing emit
- end-to-end testing
- about / Getting down to business, Testing end-to-end
- specification, reviewing / Specification
- development to-do list / The development to-do list
- TDD process / Test first
- product data, obtaining / Getting the product data
- end-to-end testing, product cart
- end-to-end test, assembling / Assembling the cart's end-to-end test
- save to cart action, invoking / Invoking a save to cart action
- saved products, confirming / Confirming products have been saved
- end-to-end test, passing / Making the cart's end-to-end test pass
- end-to-end testing, recently viewed items
- about / End-to-end testing
- test first / Test first
- recently viewed end-to-end test, assembling / Assembling the recently viewed end-to-end test
- search result, selecting / Selecting a search result
- recently viewed items, confirming / Confirming recently viewed items
- recentlyViewedItems test, passing / Making the recentlyViewedItems test pass
- recentlyViewedItems test, improving / Making recently viewed items better
- end-to-end tests, Protractor
- test web server, installing / Installing the test web server
- events, in search application
- implementing / Harnessing the power of events
- plan / The plan
- rebranding / Rebranding
- recently viewed items, viewing / Seeing recently viewed items
- product cart, creating / Creating a product cart
- Expect property, Karma test / Testing with Karma
F
- flip flop test, AngularJS routes
- views flip, creating / Making the views flip
- flip, asserting / Asserting a flip
- running / Making flip flop run
- improving / Making flip flop better
- Function Under Test / Testing techniques
- fundamentals, search application
- Protractor locators / Protractor locators
G
- GitHub
- about / GitHub
H
- $httpBackend property / Testing $http with Karma
- headless browser testing, for Karma
- setting up / Setting up headless browser testing for Karma
- preconfiguration / Preconfiguration
- configuration / Configuration
- http-server module / Getting the product data
- about / Getting the product data
- HTTP methods
I
- inject variable
- installation
- Karma / Installing Karma
- Protractor / Protractor installation
- it parameter
- about / Test first, Test first
- It property, Karma test / Testing with Karma
J
- Jasmine
- Jasmine spy
- used, for creating test double / Testing doubles with Jasmine spies
- JavaScript testing frameworks
- about / JavaScript testing frameworks
- Jasmine / Jasmine
- Selenium / Selenium
- Mocha / Mocha
- JavaScript testing tools
- about / JavaScript testing tools
- Karma / Karma
- Protractor / Protractor
K
- Karma
- about / Karma
- pros / Karma
- cons / Karma
- birth / Birth of Karma
- features / The Karma difference
- combining, with AngularJS / Importance of combining Karma with AngularJS
- installing / Installing Karma
- URL / Installing Karma
- prerequisites, for installation / Installation prerequisites
- configuring / Configuring Karma
- configuration, customizing / Customizing Karma's configuration
- installation, confirming / Confirming Karma's installation and configuration, Confirming the Karma installation
- configuration, confirming / Confirming Karma's installation and configuration
- common installation/configuration issues / Common installation/configuration issues
- testing, with / Testing with Karma
- initializing / Initializing Karma
- Karma, using with AngularJS
- about / Using Karma with AngularJS
- AngularJS, obtaining / Getting AngularJS
- testing, with / Testing with AngularJS and Karma
- development to-do list / A development to-do list
- list of items, testing / Testing a list of items
- TDD process / Testing a list of items
- function, adding to controller / Adding a function to the controller
- karma.conf file / Initializing Karma
- Karma configuration
- about / Karma configuration
- file watching / File watching
- Karma configuration, application to enter comments
- testing / Test first
- 3A's / Test first
- test, running / Make it run
- test, improving / Make it better
- test chain, backing up / Back up the test chain
- input, binding / Bind the input
- Karma dev dependencies
- karma / Test setup
- karma-jasmine / Test setup
- karma-phantomjs-launcher / Test setup
- installing / Test setup
- Karma unit testing
- test setup / Test setup
- test scripts / Test scripts
- hook, setting / Setting the hook
- hook, creating / Creating the hook
- Travis configuration file, adding / Adding a Travis configuration file
M
- messages
- publishing / Publishing and subscribing messages
- subscribing / Publishing and subscribing messages
- middle-to-end testing
- about / Testing middle-to-end
- test first / Test first
- product test, assembling / Assembling the product test
- products, obtaining / Getting products
- product data results, expecting / Expecting product data results
- product data, running / Making the product data run
- Mocha
N
- Node.js
- Node Package Manager (npm) modules / Mocha
P
- PhantomJS
- PhantomJS browser plugin
- URL / Preconfiguration
- prerequisites, Protractor installation
- Node.js / Installation prerequisites
- Chrome / Installation prerequisites
- Selenium WebDriver for Chrome / Installation prerequisites
- product cart
- creating / Creating a product cart
- publisher test first / Publisher test first
- searchDetailController, assembling / Assembling searchDetailController
- product saving, invoking / Invoking the saving of a product
- save event, confirming / Confirming the save event
- saveProduct test, passing / Making the saveProduct test pass
- subscriber unit test / Test for the subscriber first
- test, assembling / Assembling the product cart test
- saved cart event, invoking / Invoking a saved cart event
- saved cart, confirming / Confirming the saved cart
- cart controller test, running / Making the cart controller test run
- end-to-end testing / End-to-end testing
- product data controller
- about / The product data controller
- product controller test, assembling / Assembling the product controller test
- products, obtaining / Getting products
- product data results, asserting / Asserting product data results
- product data service
- about / The product data service
- product requests, unit testing
- about / Unit testing product requests
- project, setting up / Setting up the project
- Karma configuration / Karma configuration
- API builder pattern, using / Using an API builder pattern
- products, displaying with REST
- about / Displaying products with REST
- product requests, unit testing / Unit testing product requests
- product data service / The product data service
- product data controller / The product data controller
- product data tests, running / Making the product data tests run
- Protractor
- about / Protractor, An overview of Protractor
- pros / Protractor
- cons / Protractor
- overview / An overview of Protractor
- origins / Origins of Protractor
- birth / The birth of Protractor
- features / Life without Protractor
- URL / Common installation/configuration issues
- real test / Hello Protractor
- TDD, using / TDD end-to-end
- pre-setup / The pre-setup
- setup / The setup
- end-to-end tests / Test first
- configuring / Configuring Protractor
- gaps, cleaning up / Cleaning up the gaps
- async magic components / Async magic
- TDD, implementing with / TDD with Protractor
- Protractor installation
- about / Protractor installation
- reference link, for guide / Protractor installation
- prerequisites / Installation prerequisites
- performing / Installing Protractor
- WebDriver, installing for Chrome / Installing WebDriver for Chrome
- configuration, customizing / Customizing configuration
- confirming / Confirming installation and configuration
- configuration, confirming / Confirming installation and configuration
- common issues / Common installation/configuration issues
- Protractor locators
- about / Protractor locators
- CSS locators / CSS locators
- button text locator / Button and link locators
- link text locator / Button and link locators
- Angular locators / Angular locators
- URL location references / URL location references
- publishing and subscribing
- messages / Publishing and subscribing messages
- issues / Publishing and subscribing – the good and bad
- scenarios / The good
- communicating, through events / Communicating through events
- coupling, reducing / Reducing coupling
R
- recently viewed items, viewing
- about / Seeing recently viewed items
- test first / Test first
- end-to-end testing / End-to-end testing
- recently viewed test
- writing / Test first
- SearchController, assembling / Assembling SearchController
- product, selecting / Selecting a product
- events, to be published / Expecting events to be published
- search controller run, creating / Making the search controller run
- unit test / Recently viewed unit test
- recently viewed unit test
- about / Recently viewed unit test
- writing / Test first
- RecentlyViewedController, assembling / Assembling RecentlyViewedController
- recently viewed item, invoking / Invoking a recently viewed item
- RecentlyViewedController, confirming / Confirming RecentlyViewedController
- RecentlyViewedController, running / Making RecentlyViewedController run
- refactoring, TDD
- about / Fundamentals of TDD, Refactoring
- REST
- about / REST – the language of the Web
- getting started process / Getting started with REST
- REST requests
- creating, AngularJS used / Making REST requests using AngularJS
- testing, with AngularJS REST / Testing with AngularJS REST
- mocking, with Protractor / Mocking requests with Protractor
S
- SaaS (Software as a Service) / Life without Protractor
- Sauce Labs
- URL / Life without Protractor
- Scenario Runner
- about / End of life
- scope variable
- search application
- fundamentals / Fundamentals
- creating / Creating a new project
- headless browser testing, setting up for Karma / Setting up headless browser testing for Karma
- search application, TDD way
- about / Searching the TDD way, The search application
- approach, deciding on / Deciding on the approach
- search query / Walk-through of search query
- search query test / The search query test
- search query HTML page / The search query HTML page
- search results, search application
- about / Show me some results!
- search result routes, creating / Creating the search result routes
- testing / Testing the search results
- search result test, assembling / Assembling the search result test
- selecting / Selecting a search result
- confirming / Confirming a search result
- search result test, running / Making the search result test run
- testing, for location / Creating a location-aware test
- improving / Making the search result better
- route ID, confirming / Confirming the route ID
- route ID unit test, setting up / Setting up the route ID unit test
- route ID unit test, confirming / Confirming the ID
- route parameters test, running / Making the route parameter's test run
- Selenium
- URL / Selenium
- about / Selenium
- pros / Selenium
- cons / Selenium
- installing / Installation
- Protractor configuration / Protractor configuration
- running / Running Selenium, Let it run
- test first / Test first
- Selenium WebDriver, for Chrome
- about / Installation prerequisites
- installing / Installing WebDriver for Chrome
- success, measuring in TDD
- steps, breaking down / Breaking down the steps
- test first methodology / Measure twice cut once
T
- TDD
- about / An overview of TDD, TDD end-to-end
- fundamentals / Fundamentals of TDD
- benefits / Fundamentals of TDD
- success, measuring / Measuring success
- testing techniques / Testing techniques
- applying / TDD end-to-end
- TDD life cycle
- about / Diving in
- test, setting up / Setting up the test
- development to-do list, creating / Creating a development to-do list
- test first / Test first
- test, running / Making it run
- test, improving / Making it better
- TDD process, end-to-end testing
- test first / Test first
- 3A's / Assemble, Act, Assert (3 A's)
- test, running / Make it run
- test, improving / Make it better
- TDD process, for adding function to controller
- about / Adding a function to the controller
- test first / Test first
- 3A's / Assemble, Act, and Assert (3 A's)
- test, running / Make it run
- test, improving / Make it better
- TDD process, for testing list of items
- test first / Test first
- 3A's / Assemble, Act, and Assert (3 A's)
- test, running / Make it run
- test, improving / Make it better
- test, Selenium
- assemble / Assemble
- assert / Assert
- running / Make it run
- test double
- about / Testing doubles with Jasmine spies
- using / Testing doubles with Jasmine spies
- creating, Jasmine spy used / Testing doubles with Jasmine spies
- return value, stubbing / Stubbing a return value
- arguments, testing / Testing arguments
- testing framework
- about / Testing with a framework
- testing techniques, TDD
- about / Testing techniques
- testing framework / Testing with a framework
- test double / Testing doubles with Jasmine spies
- test double, using Jasmine spy / Testing doubles with Jasmine spies
- refactoring / Refactoring
- building, with builder / Building with a builder
- ToBeTruthy property, Karma test / Testing with Karma
- top-down approach
- about / Top-down or bottom-up approach
- Travis CI
- configuration file / Adding a Travis configuration file
- URL / Adding a Travis configuration file
- Travis CI hook
- creating / Creating the hook