In this project I was given by Udacity a web-based application that reads RSS feeds. The goal was to test the application with Jasmine.
- Take the JavaScript Testing course
- Download the required project assets.
- Review the functionality of the application within a browser.
- Explore the application's HTML (./index.html), CSS (./css/style.css) and JavaScript (./js/app.js) to gain an understanding of how it works.
- Explore the Jasmine spec file in ./jasmine/spec/feedreader.js and review the Jasmine documentation.
- Edit the
allFeeds
variable in ./js/app.js to make the provided test fail and see how Jasmine visualizes this failure in your application. - Return the
allFeeds
variable to a passing state. - Write a test that loops through each feed in the
allFeeds
object and ensures it has a URL defined and that the URL is not empty. - Write a test that loops through each feed in the
allFeeds
object and ensures it has a name defined and that the name is not empty. - Write a new test suite named
"The menu"
. - Write a test that ensures the menu element is hidden by default. Analyze the HTML and the CSS to determine how we're performing the hiding/showing of the menu element.
- Write a test that ensures the menu changes visibility when the menu icon is clicked. This test should have two expectations: does the menu display when clicked and does it hide when clicked again.
- Write a test suite named
"Initial Entries"
. - Write a test that ensures when the
loadFeed
function is called and completes its work, there is at least a single.entry
element within the.feed
container. - Write a test suite named
"New Feed Selection"
. - Write a test that ensures when a new feed is loaded by the
loadFeed
function that the content actually changes. - No test should be dependent on the results of another.
- Callbacks should be used to ensure that feeds are loaded before they are tested.
- Implement error handling for undefined variables and out-of-bound array access.
- When complete - all of the tests should pass.
-
Download / Clone the repository
$ git clone https://github.com/wojtek-zajac/feed-reader-testing.git
-
Open
index.html
in a browser -
Jasmine tests should appear at the bottom of the page
- Jasmine
- JavaScript (ES6)
- jQuery
- HTML5
- CSS3